Я пытаюсь создать функцию, которая генерирует случайный токен, который не существует в моей базе данных (Mongodb), и я использую уникальное свойство в моей пользовательской схеме. Это моя функция:генератор токенов в узле и выражение
var UniqueTokenGenerator = function() {
var token = uuid.v4();
UserModel.findOne({token : token} , (err , user)=> {
if(err)
res.status(500).send(err);
else if(user){
//1
}else if(!user){
return token; //2
}
});
};
Мои проблемы:
- Я хочу, если маркер существует позвонить UniqueTokenGenerator или что-то ... как петли.
- Токен не может быть возвращен.
- У кого-нибудь есть идея?
Я не хочу использовать какую-либо библиотеку, например jwt
.
tnx для вашего ответа ... но 1%, если 2 токена равны ...?! –
Да, шанс 1%, если вы создадите 2.6 квинтиллиона токенов. На Земле всего 7,5 миллиарда человек. – smarx
Для небольшой перспективы, если вы создали UUID для каждого человека на Земле, ваши шансы найти столкновение будут примерно 0,0000000000000000000 << 200 000 еще нулей здесь >> 0000001. Скорее всего, на следующий год вас ударит метеор, чем в случае столкновения. – smarx