如何使用 Google 令牌在 vueJS 应用程序和 symfony 之间进行通信?

How to communicate between vueJS app & symfony with Google Token?

我正在实施 Google 登录我的 VueJS 应用程序,在开始之前我有几个问题:

  1. 如何在用户单击 Google 登录按钮时创建用户?

    • 我是否必须为此创建自定义路线?
    • 我是否必须生成一个随机密码,因为它是强制性的?
  2. 当用户已经注册并点击Google登录时。

    • 我是否必须将 Google 令牌从 Vue JS 传递到 Symfony,然后使用 google API,验证令牌是否有效并从我的 symfony 应用程序生成令牌?

如果你有一些好的文档,我会接受的。

要开始,它实际上是一个实现起来相对复杂的功能。这是因为您必须使用自定义(如果可以使用 Google 帐户登录或注册到您自己的网站,则可能是多个)guard authenticators. Moreover, you will need to use an OAuth bundle like KnpUOAuth2ClientBundle or HWIOAuthBundle.

您问题的答案:

  1. 您必须为此创建一个自定义路由,但您不需要生成随机密码,您只需将密码设置为可为空并添加检查以确保仅对通过 Google 登录的用户它为空(如果这对你来说不可能,那么只需添加一些随机的密码)。此外,如果您同时提供 google 和您自己的身份验证,我建议向您的用户实体添加一个字段 provider。您应该分别将其设置为 'google' 或 '网站。
  2. 用户身份验证过程由 Google 处理,您将获得一个访问令牌作为响应,其中包含用户信息,如姓名、电子邮件等,因此您实际上不必担心验证密码等。

This article 帮助您开始使用 KnpUOAuth2ClientBundle。