Добавить дополнительное поле в форму входа

Я использую FOSUserBundle в своем приложении Symfony3. Меня попросили добавить дополнительный уровень безопасности на страницу входа.

Допустим, я получаю пользовательскую строку ключа (сохраненную на компьютере пользователя) с помощью JQuery.

Мне нужно получить этот ключ, а затем отправить его вместе с учетными данными пользователя для проверки в Symfony. Этот ключ будет храниться в базе данных (я думал о новом столбце в пользовательской таблице), и когда пользователь попытается войти в приложение, если ключа нет или ключ другой, он выдаст ошибку.

Я прочитал документацию, и самая близкая к моим потребностям тема — эта.

За исключением того, что мне нужно сравнить токен, который я отправляю, с тем, который находится в базе данных.

Заранее благодарю за любую помощь!


person Dani California    schedule 29.08.2017    source источник
comment
Взгляните на Guard и symfony.com/doc/ мастер/безопасность/   -  person Jason Roman    schedule 29.08.2017
comment
Спасибо за эту ссылку. Однако мне не нужно создавать токен, и я буду использовать этот ключ только тогда, когда пользователь попытается войти в веб-приложение. Использование Guard потребует переписать несколько вещей. Есть ли более быстрый способ проверить токен, который я получаю через JQuery, с токеном с базой данных?   -  person Dani California    schedule 29.08.2017
comment
хм, может быть, я могу получить ключ, хранящийся в базе данных, и сравнить его с ключом, который я получаю из JQuery, и, если они совпадают, показать форму входа. Это то, что можно сделать (получить ключ из БД)?   -  person Dani California    schedule 29.08.2017
comment
Конечно, это можно сделать, но без кода или подробностей я даже не уверен, что вы на самом деле спрашиваете.   -  person Jason Roman    schedule 29.08.2017
comment
Я не знаю, как это объяснить. Например, иметь ключ, хранящийся в базе данных, а затем, когда кто-то пытается войти в систему, выполнить операцию if, чтобы сравнить ключ в базе данных с другим, который я получу через JQuery или Ajax: {% if db_token == 'a4a6579' % } привет, мир {% endif %}   -  person Dani California    schedule 29.08.2017
comment
Вы пытались переопределить контроллер безопасности? вот пример stackoverflow.com/questions/21194401/   -  person Mehmet Soylu    schedule 30.08.2017