使用 Google 登录而不使用 Google 登录 JavaScript 网络平台库
Sign-in with Google without Google Sign-In JavaScript Platform Library for web
我想在注册我们的服务时添加“使用 Google 登录”作为创建帐户的替代方法。
我希望进程检索用户的电子邮件地址和姓名。就是这样。
这个例子就是我所需要的
https://developers.google.com/identity/sign-in/web
效果很好。与我上周添加的使用 Facebook 登录非常相似。
但现在我了解到它在 2023 年 3 月之后将不再受支持。
使用 destined-for-the-dustbin JS 代码,我可以获得有关我正在登录的帐户的有用信息。
ID: 10855600*****690837;Frank;Hart;frank.hart*****@gmail.com
传递给回调函数的参数有一个 getBasicProfile() 方法来完成工作
var 配置文件 = googleUser.getBasicProfile();
但是使用新代码,我发现(通过反复试验)传递给回调函数的参数是一个对象,它有三个字段,唯一可能有用的一个叫做credential,内容如:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjQ2Mjk0OTE3NGYxZWVkZjRmOWY5NDM0ODc3YmU0ODNiMzI0MTQwZjUiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20iLCJuYmYiOjE2Mjg4NTQzOTcsImF1ZCI6IjY1MjE0Nzk1NjY0My05aWVmdHN2bmZraDVma2x1NHUxOGg1Ymc3MDA0YjdsOC5hcHBzLmdvb2dsZXVzZXJjb250ZW50LmNvbSIsInN1YiI6IjEwODU1NjAwNDY3OTg0NzY5MDgzNyIsImVtYWlsIjoiZnJhbmsuaGFydDA0N0BnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiYXpwIjoiNjUyMTQ3OTU2NjQzLTlpZWZ0c3ZuZmtoNWZrbHU0dTE4aDViZzcwMDRiN2w4LmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwibmFtZSI6IkZyYW5rIEhhcnQiLCJwaWN0dXJlIjoiaHR0
现在,我的猜测是我必须将该字符串发送到我的服务器,并对其进行处理,可能涉及与 developers.google.com 上的应用程序关联的“客户端机密”。但我一天大部分时间都在寻找,我不确定我发现的东西是否有必要 - 我希望它不是
https://developers.google.com/identity/sign-in/web/backend-auth
我现在是否需要成为 OAuth2 程序员才能添加使用 Google 按钮登录?
好消息是您不需要学习 OAuth2,也不需要遵循问题中链接的后端验证指南。此迁移实际上 消除了 复杂的 OAuth2、访问和刷新登录令牌。是的,学习和理解安全共享用户配置文件的新的和不同的方式存在困难。希望在学习曲线达到顶峰后,您会看到这如何使使用配置文件变得更加简单。
JSON Web 令牌 (JWT) 现在用于安全地共享 Google 帐户配置文件。
那一大堆文本——凭证,它是一个 base-64 编码和一个 JWT。
jwt.io 有一个在线 JWT 解码器,可以方便地进行测试,还有一篇关于使用 JWT 的精彩文章。解码后它只是一个 JSON 对象,不需要 get 方法,只需访问各个字段。
综上所述,您需要决定是在用户的浏览器中还是在您的后端服务器上进行解码。这取决于您如何使用配置文件和您的设置。通常,您会在重定向后使用 JS 中的 data-login_uri in HTML or login_uri 在您的服务器上解码。
有大量可用的 JWT 解码库,因此您很可能能够添加 JWT 库,对其进行解码,然后就可以访问凭证中的各个字段了。
我想在注册我们的服务时添加“使用 Google 登录”作为创建帐户的替代方法。
我希望进程检索用户的电子邮件地址和姓名。就是这样。
这个例子就是我所需要的
https://developers.google.com/identity/sign-in/web
效果很好。与我上周添加的使用 Facebook 登录非常相似。
但现在我了解到它在 2023 年 3 月之后将不再受支持。
使用 destined-for-the-dustbin JS 代码,我可以获得有关我正在登录的帐户的有用信息。
ID: 10855600*****690837;Frank;Hart;frank.hart*****@gmail.com
传递给回调函数的参数有一个 getBasicProfile() 方法来完成工作
var 配置文件 = googleUser.getBasicProfile();
但是使用新代码,我发现(通过反复试验)传递给回调函数的参数是一个对象,它有三个字段,唯一可能有用的一个叫做credential,内容如:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjQ2Mjk0OTE3NGYxZWVkZjRmOWY5NDM0ODc3YmU0ODNiMzI0MTQwZjUiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20iLCJuYmYiOjE2Mjg4NTQzOTcsImF1ZCI6IjY1MjE0Nzk1NjY0My05aWVmdHN2bmZraDVma2x1NHUxOGg1Ymc3MDA0YjdsOC5hcHBzLmdvb2dsZXVzZXJjb250ZW50LmNvbSIsInN1YiI6IjEwODU1NjAwNDY3OTg0NzY5MDgzNyIsImVtYWlsIjoiZnJhbmsuaGFydDA0N0BnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiYXpwIjoiNjUyMTQ3OTU2NjQzLTlpZWZ0c3ZuZmtoNWZrbHU0dTE4aDViZzcwMDRiN2w4LmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwibmFtZSI6IkZyYW5rIEhhcnQiLCJwaWN0dXJlIjoiaHR0
现在,我的猜测是我必须将该字符串发送到我的服务器,并对其进行处理,可能涉及与 developers.google.com 上的应用程序关联的“客户端机密”。但我一天大部分时间都在寻找,我不确定我发现的东西是否有必要 - 我希望它不是
https://developers.google.com/identity/sign-in/web/backend-auth
我现在是否需要成为 OAuth2 程序员才能添加使用 Google 按钮登录?
好消息是您不需要学习 OAuth2,也不需要遵循问题中链接的后端验证指南。此迁移实际上 消除了 复杂的 OAuth2、访问和刷新登录令牌。是的,学习和理解安全共享用户配置文件的新的和不同的方式存在困难。希望在学习曲线达到顶峰后,您会看到这如何使使用配置文件变得更加简单。
JSON Web 令牌 (JWT) 现在用于安全地共享 Google 帐户配置文件。
那一大堆文本——凭证,它是一个 base-64 编码和一个 JWT。 jwt.io 有一个在线 JWT 解码器,可以方便地进行测试,还有一篇关于使用 JWT 的精彩文章。解码后它只是一个 JSON 对象,不需要 get 方法,只需访问各个字段。
综上所述,您需要决定是在用户的浏览器中还是在您的后端服务器上进行解码。这取决于您如何使用配置文件和您的设置。通常,您会在重定向后使用 JS 中的 data-login_uri in HTML or login_uri 在您的服务器上解码。
有大量可用的 JWT 解码库,因此您很可能能够添加 JWT 库,对其进行解码,然后就可以访问凭证中的各个字段了。