Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2021 April 21

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Для постгреса есть еще ДО-шный коннекшн пул, который помогает "обойти" ограничение на количество одновременных коннекшенов к базе как на небольших инстансах, так и на инстансах побольше.
источник

A

Andrey in NodeUA - JavaScript and Node.js in Ukraine
@m03geek , благодарю, почитаю об этом
источник
2021 April 22

О

ОЛЕГ in NodeUA - JavaScript and Node.js in Ukraine
Здравствуйте, подскажите, можноли перейти с bcrypt на crypto если уже есть нагенерированые хеши?
источник

PB

Pavel Batov in NodeUA - JavaScript and Node.js in Ukraine
Можно, если ты запишешь в базу чем они захэшированы, и будешь проверять постоянно, например это можно сделать так, что ты всем существующим юзерам присваиваешь версию хэширования 1 и знаешь что ты для неё использовал bcrypt, а для всех новых пишешь версию 2 и знаешь что хэшировал scrypt и тд
источник

О

ОЛЕГ in NodeUA - JavaScript and Node.js in Ukraine
Спасибо за ответ
источник

ES

Eugene Stepanyuk in NodeUA - JavaScript and Node.js in Ukraine
подскажите пожалуйста, делаю зависимости между таблицами через sequalize.
User.hasMany(Access, { foreignKey: 'roleId', sourceKey: 'roleId', as: 'accesses' });
Access.belongsTo(User, { foreignKey: 'roleId', targetKey: 'roleId', as: 'user' });
Access.hasMany(Route, { foreignKey: 'id', sourceKey: 'routeId', as: 'routes' });
Route.belongsTo(Access, { foreignKey: 'id', targetKey: 'routeId', as: 'accesses' });
const user = await User.findOne({
     where: { email: payload.email.trim(), },
     include: [{
       model: Access,
       as: 'accesses',
       where: { isAccess: 1 },
       include: [{
         model: Route,
         as: 'routes'
       }]
     }]
   })
в таком случае авторизация происходит, но если я разлогинюсь и пробую авторизоваться еще раз прилетает invalid. Если возвращаю как изначально было до зависимостей
const user = await User.findOne({ where: { email: payload.email.trim() } })
все ок работает, в чем может быть причина? передебажил уже все что связано с авторизацией, ну ничего не нашел такого..
источник

N

Nikita in NodeUA - JavaScript and Node.js in Ukraine
выглядит так, что дело во фронте.
Отправь два раза запрос на login через postman посмотри на результат.
источник

ES

Eugene Stepanyuk in NodeUA - JavaScript and Node.js in Ukraine
честно говоря им особо никогда не пользовался, но вывожу запрос на сервере в консоль, при повторной авторизации (когда не пропускает) прилетает такой же request
источник

ES

Eugene Stepanyuk in NodeUA - JavaScript and Node.js in Ukraine
вроде отправил и прилетает тот же invalid
{
   "success": false,
   "error": "INVALID"
}
источник

N

Nikita in NodeUA - JavaScript and Node.js in Ukraine
правильно ли я понимаю в логах node.js никакой ошибки нет?
источник

ES

Eugene Stepanyuk in NodeUA - JavaScript and Node.js in Ukraine
в консольку ничего не прилетает, но invalid отрабатывает при валидации я так понимаю
есть middleware
export default async function ( request: Request, response: Response, next: NextFunction ) {
 if (!(await validate(request))) {
   return response.status(400).json({
     success: false,
     error: ErrorCode.invalid,
   })
 }
 return next()
}
export async function validate(request: Request) {
 if (!request.body) return false
 if (!request.body.email?.trim()) return false
 if (!request.body.password?.trim()) return false
 return /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(
   request.body.email
 )
}
и потом уже сам запрос
export const path: string = "/auth"
export const instance: Router = Router()
async function login(request: Request, response: Response) {
 const data = await authService.login(request.body)
 return response.json(data)
}
instance.post("/login", authMiddlewares.login, login)
но как он может не пропускать валидацию, если я ввожу те же данные что в первый раз при авторизации?
источник

N

Nikita in NodeUA - JavaScript and Node.js in Ukraine
сходу не могу подсказать
источник

ES

Eugene Stepanyuk in NodeUA - JavaScript and Node.js in Ukraine
{
 if (!(await validate(request))) {
   return response.status(400).json({
     success: false,
     error: ErrorCode.invalid,
   })
 }
 return next()
}
вот в этом месте перед if вывожу в консоль результат validate и при первой и повторной авторизации возвращает true, но второй раз не пропускает дальше....я в шоке
источник

ES

Eugene Stepanyuk in NodeUA - JavaScript and Node.js in Ukraine
почему же на клиенте возвращает invalid
источник

Г

Глеб in NodeUA - JavaScript and Node.js in Ukraine
Учитывая контекст вопроса с повторными вызовами, и раз уж речь про консоль логи зашла: в этих примерах кода метод test() вызывается не на объекте глобального регулярного выражения, поэтому, на первый взгляд, все должно работать ок, но если при дебаге через консоль лог регулярку вынесли в переменную и сделали глобальной (через добавление “/g”) – в консоли выведется true, а фактическая проверка условия уже даст false из-за сохраненного объектом состояния. Не уверен, что проблема в этом. Но мало ли )
источник

ES

Eugene Stepanyuk in NodeUA - JavaScript and Node.js in Ukraine
не совсем понял, не правильно проверяю результат функции?
источник

Г

Глеб in NodeUA - JavaScript and Node.js in Ukraine
ну судя по примерам кода выше – там с этим проблем нет, но если при дебаге код меняется, то возможно дело в том, что объект регулярки объявляется глобальным, и на одном и том же объекте происходит вызов метода test, один раз во время логирования, второй – в условии.
“метод test(), вызванный несколько раз на одном и том же экземпляре глобального регулярного выражения, будет начинать проверку с конца предыдущего сопоставления” (MDN)
источник

ES

Eugene Stepanyuk in NodeUA - JavaScript and Node.js in Ukraine
а почему если убрать зависимости таблиц и просто логиниться по поиску юзера по емейлу - то все ок работает? как это может влиять?
const user = await User.findOne({ where: { email: payload.email.trim() } })
источник

/

// JD in NodeUA - JavaScript and Node.js in Ukraine
Подскажите как пройти испытательный срок? Может есть какие-то советы дельные)
источник

R

Roman in NodeUA - JavaScript and Node.js in Ukraine
испытательный срок чего?
источник