Чтобы начать, на самом деле это довольно сложная для реализации функциональность.Это потому, что вам придется использовать пользовательские (может быть несколько, если можно одновременно войти в систему с учетной записью Google или зарегистрироваться на своем веб-сайте) guard authenticators .Кроме того, вам нужно будет использовать пакет OAuth, например KnpUOAuth2ClientBundle или HWIOAuthBundle .
Ответ на ваши вопросы:
- У вас естьчтобы создать собственный маршрут для этого, но вам не нужно генерировать случайный пароль, вы можете просто сделать пароль обнуляемым и добавить проверки, что он является нулевым только для пользователей, вошедших в систему через Google (если это невозможно для вас, тогда просто добавьте что-то случайноекак пароль).Кроме того, я бы предложил добавить поле
provider
к вашей сущности пользователя, если вы предоставляете как Google, так и свою собственную аутентификацию.Вы должны установить для него значение «google» или «website» соответственно. - Процесс аутентификации пользователя обрабатывается Google, и вы получаете токен доступа в качестве ответа, который содержит информацию о пользователе, такую как имя, адрес электронной почты и т. Д., Поэтому вы делаетена самом деле не нужно беспокоиться о проверке паролей и т. д.
Эта статья поможет вам начать работу с KnpUOAuth2ClientBundle.