symfony - 如何使用 Google Token 在 vueJS 应用程序和 symfony 之间进行通信?
问题描述
我正在我的 VueJS 应用程序中实现 Google 登录,在开始之前我有几个问题:
当用户点击谷歌登录按钮时如何创建用户?
- 我是否必须为此创建自定义路线?
- 我必须生成一个随机密码,因为它是强制性的吗?
当用户已经注册并点击 Google 登录时。
- 我是否必须将 Google Token 从 Vue JS 传递到 Symfony,然后使用 google API,验证令牌是否有效并从我的 symfony 应用程序生成令牌?
如果你有一些好的文档,我会接受的。
解决方案
要开始这个,它实际上是一个相对复杂的功能来实现。这是因为您必须使用自定义(如果一个可以使用 Google 帐户登录或注册到您自己的网站,则可能是多个)保护身份验证器。此外,您将需要使用 OAuth 包,如KnpUOAuth2ClientBundle或HWIOAuthBundle。
您的问题的答案:
- 您必须为此创建一个自定义路由,但您不需要生成随机密码,您可以将密码设置为可空并添加检查是否仅为通过 Google 登录的用户为空(如果您不可能,则只需添加一些随机的密码)。
provider
此外,如果您同时提供 google 和您自己的身份验证,我建议向您的 User 实体添加一个字段。您应该分别将其设置为“谷歌”或“网站”。 - 用户身份验证过程由 Google 处理,您将获得一个访问令牌作为响应,其中包含用户的姓名、电子邮件等信息,因此您不必担心验证密码等。
本文帮助您开始使用 KnpUOAuth2ClientBundle。
推荐阅读
- ruby-on-rails - 来自 RSpec 的意外状态代码
- python - 在给定货币价值和糖果价格的情况下购买糖果的方式数量
- docker - 使用 Docker 在 Virtuoso 中加载 DBPedia Turtle 时出错
- r - 数据框的相关矩阵,按日期
- excel - 带过滤器的数据验证
- java - 单元测试一个简单的内存缓存
- wordpress - 活动图像大小 Woocommerce 产品页面
- sql - 将多个字段合并为一个
- .net-core - 有没有办法在 netcore webapi 应用程序上配置“JwtBearerOptions”?
- java - 数组子集问题 [O(n) 时间复杂度的最小空间]