Никакая перегрузка не соответствует этому вызовуJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Никакая перегрузка не соответствует этому вызову

Сообщение Anonymous »

Я сталкиваюсь с ошибкой типографии при создании аутентификации с использованием jwt. < /p>

Нет перегрузки соответствует этому вызову.
перегрузка 1 из 5, '(Powerload: String | Object | Buffer, SecretorprivateKey: null, опции? Ошибка.
rgument of type 'String' не назначается параметру типа 'null'.
перегрузка 2 из 5, '(полезная нагрузка: строка | объект | буфер, секретаторпиватей: буфер | секрет | privatekeyinput | jsonwebkeyinput, опции? StringValue | Undefined '.
перегрузка 3 из 5,' (полезная нагрузка: строка | объект | буфер, SensectorPrivateKey: Buffer | Секрет | PrivateKeyInput | jsonWebKeyInput, обратный вызов: SignCallback): void ', дал следующую ошибку.
объект может указать только известные свойства, и «истекает», истекает' не существует в типе. /> Это мой код < /p>
const JWT_SECRET = process.env.JWT_SECRET;
const JWT_EXPIRES_IN = process.env.JWT_EXPIRES_IN || '1h';

if (!JWT_SECRET) {
throw new Error("FATAL ERROR: JWT_SECRET is not defined in environment variables.");
}

class AuthService {
private saltRounds = 10;

public async registerUser(userData: UserCreationData): Promise {
const { username, password } = userData;

// Check if user already exists
const existingUserResult: QueryResult = await pool.query(
'SELECT * FROM users WHERE username = $1',
[username]
);
if (existingUserResult.rows.length > 0) {
throw new Error('Username already exists.');
}

// Hash password
const hashedPassword = await bcrypt.hash(password, this.saltRounds);
// Insert new user
const query = `
INSERT INTO users (username, password)
VALUES ($1, $2)
RETURNING id, username, created_at; -- Return user data without password
`;
try {
const result: QueryResult = await pool.query(query, [username, hashedPassword]);
if (result.rows.length > 0) {
return result.rows[0];
} else {
throw new Error("User registration failed, no rows returned.");
}
} catch (error) {
console.error("Error registering user:", error);
throw new Error("Failed to register user in database.");
}
}

public async loginUser(userData: UserCreationData): Promise {
const { username, password } = userData;

// ... (database query and password check) ...
const query = 'SELECT * FROM users WHERE username = $1;';
const result: QueryResult = await pool.query(query, [username]);

if (result.rows.length === 0) {
throw new Error('Invalid username or password.');
}
const user = result.rows[0];
const isMatch = await bcrypt.compare(password, user.password);

if (!isMatch) {
throw new Error('Invalid username or password.');
}

const token = jwt.sign(
{userId: user.id, username: user.username},
JWT_SECRET as string,
{ expiresIn: JWT_EXPIRES_IN }
);

const { password: _, ...userWithoutPassword } = user;
return { token, user: userWithoutPassword };
}
}

export default AuthService;


Подробнее здесь: https://stackoverflow.com/questions/795 ... -this-call
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»