首页 > 解决方案 > 如何使用 Google Token 在 vueJS 应用程序和 symfony 之间进行通信?

问题描述

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

  1. 当用户点击谷歌登录按钮时如何创建用户?

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

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

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

标签: symfonyvue.jsjwtapi-platform.com

解决方案


要开始这个,它实际上是一个相对复杂的功能来实现。这是因为您必须使用自定义(如果一个可以使用 Google 帐户登录或注册到您自己的网站,则可能是多个)保护身份验证器。此外,您将需要使用 OAuth 包,如KnpUOAuth2ClientBundleHWIOAuthBundle

您的问题的答案:

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

本文帮助您开始使用 KnpUOAuth2ClientBundle。


推荐阅读