как создать приложение для опроса, разрешить посещение только приглашенным лицам безопасным способом

У меня есть одно приложение Node.js, а база данных - MSSQL. Я реализовал базовые функции, такие как регистрация, вход в систему и другие, такие как добавление пользователей. Для аутентификации api используется JWT, поэтому при входе пользователя в систему он получит токен, сохраненный в файле cookie, как и в обычном приложении.

Я собираюсь добавить в приложение новую функцию опроса. С опросом не требуется вход в систему и не требуется создавать новую учетную запись, но только человек, получивший ссылку с приглашением, может посетить. Что я сейчас сохраняю в основной таблице опроса, так это адрес электронной почты и имя человека, который будет получать опрос, и один автоматически сгенерированный UUID. Ссылка на опрос может быть / survey / UUID.

Как мне это сделать и как защитить форму опроса?

Я думал о том, чтобы создать новый токен только для каждого использования в опросе и добавить ссылку с приглашением, а затем проверить этот токен. Но поскольку он не запрашивает логин, я не могу подтвердить токен по электронной почте. Мне нужна только рекапча? Или мне нужен логин здесь, или, по крайней мере, нужно, чтобы пользователь подтвердил свой адрес электронной почты, чтобы можно было проверить токен?


person Moon    schedule 31.07.2020    source источник


Ответы (1)


Вы можете использовать автоматическое приращение идентификатора (первичного ключа) в основной таблице и 10-15 символов в качестве пароля. вы генерируете токен на основе вашего формата, такого как url ​​/ id + пароль. Идентификатор всегда уникален, поэтому он гарантирует, что у каждого пользователя будет свой токен.

person AnonyMouze    schedule 31.07.2020
comment
Прежде всего, вы имеете в виду, что я должен создать новую таблицу для сохранения пароля и сгенерированного токена? Во-вторых, с URL / идентификатором + паролем, означает ли это, что если у кого-то есть ссылка, он также может получить доступ к опросу? - person Moon; 31.07.2020
comment
Вы можете использовать ту же таблицу, и да, любой, у кого есть ссылка, может получить доступ к опросу. Другой вариант - ввести адрес электронной почты и пароль вместо идентификатора и пароля. Однако использование идентификатора позволяет вносить изменения позже, например, запрашивать новую ссылку на опрос. - person AnonyMouze; 31.07.2020