添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
社会化登录之谷歌账号授权登录Error 400: invalid_request

社会化登录之谷歌账号授权登录Error 400: invalid_request

一、社会化登录Social Login

(一)降低登录门槛
网站登录的主要方式有密码登录、手机验证码登录、扫码登录以及第三方社交账号登录。
社会化登录又称作社交登录(Social Login),是指网站用户可以使用Facebook、推特、Google等社会化媒体账号登录该网站。社交登录的最大好处就是可以降低登录门槛,接入社交网络带来的流量和用户资源。对用户来说,也更加方便,无需记忆那么多登录密码和账号。

第三方账号登录,尤其是以OAuth的方式登录,有效降低用户的注册、使用新网站的门槛,降低新网站用户身份鉴别的难度,新网站、用户和第三方账号提供方三方可实现一定程度的共赢。

(二)什么是OAuth?

OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。

目前主流是2.0OAuth 2.0是OAuth协议的下一版本,但不向后兼容OAuth 1.0。

OAuth 2.0关注客户端开发者的简易性,同时为Web应用,桌面应用和手机,和起居室设备提供专门的认证流程。2012年10月,OAuth 2.0协议正式发布为RFC 6749 [1]

OAuth通过引入授权层以及分离客户端角色和资源所有者角色来解决这些问题。
在OAuth中,客户端在请求受资源所有者控制并托管在资源服务器上的资源的访问权限时,将被颁发一组不同于资源所有者所拥有凭据的凭据。

客户端获得一个访问令牌(一个代表特定作用域、生命期以及其他访问属性的字符串),用以代替使用资源所有者的凭据来访问受保护资源。
访问令牌由授权服务器在资源所有者认可的情况下颁发给第三方客户端。客户端使用访问令牌访问托管在资源服务器的受保护资源。

在国外谷歌Chrome浏览器、YouTube、谷歌操作系统拥有广泛的客户群,因此使用谷歌账号登录的用户就较多。国内的微信、QQ、微博、知乎也是支持社会化登录。

二、以谷歌账号登录网站报错Error 400: invalid_request

三、解决方法:注册谷歌API、获得凭据、创建OAuth客户端ID
console.cloud.google.com
创建项目【XXX】,进入控制台
配置同意屏

同意屏幕:用户在你的应用登录时,google展示给用户的信息,包括网站域名与logo、隐私政策
应用网域

包含四部分信息,网站域名、网站首页、隐私政策和服务条款。

范围

即授权域。展示于在用户同意屏幕。

保存邮箱账号,选择使用/auth/userinfo/email这个授权范围

创建凭据

选择OAuth客户端ID,选择web应用,配置授权登录后的url(https),上面填写重定向的网址非常重要,必须与.env的“GOOGLE_REDIRECT=/google/callback”统一起来。即 XXX (自己的域名).com/google/callback,生成客户端ID、密钥。

得到客户端ID、密钥

四、修改.env,配置Google Authentication

Google Authentication

GOOGLE_CLIENT_ID=输入上图的客户端ID

GOOGLE_CLIENT_SECRET=输入上图的客户端密钥

GOOGLE_REDIRECT=/google/callback(这里不要动它),但是需要与自己谷歌开发者账户里的项目OAuth客户端ID,选择web应用,配置授权登录后的url重定向域名呼应起来。否则会出现“错误 400: redirect_uri_mismatch”。

错误 400: redirect_uri_mismatch


五、苦尽甘来,成功实现社会化登录。

成功实现用户用自己的谷歌账号登录网站

优点:

简化登录流程:用户使用微信、Facebook等社交平台账号登录第三方应用或网站,基本只需要点击几个按钮,省去了填写复杂表单的注册流程,整个登录体验变得更加方便快捷。

减少密码依赖:在新注册一个网站时,用户对于设置密码和后续的记忆密码往往是有抵触心理的。使用社交平台账号进行认证登录可以使用户免于创建新账号或记忆额外的密码,进而减少用户对密码的依赖。

减少隐私数据分享焦虑:用户在陌生的第三方平台进行注册时,与陌生网站分享自己的隐私数据会感到不安和焦虑,使用社交平台进行认证,则有助于减少这种焦虑。

六、双因子验证(2FA)以保安全

Facebook和LinkedIn等曾爆出数据泄露事件,造成上百万用户账号信息的泄露。
2FA 是提升安全性的好方法。设置新账户时,有些网站会为您提供在登录过程中添加“双因子验证”的选项。通常,这需要将您的电话号码链接到您的账户。因此,在输入密码后,系统会提示您输入直接发给您的安全代码。这样,即使黑客设法获得了您的密码,但他们没有您的手机,也就无法进入您的账户。

参考

  1. ^ https://colobu.com/2017/04/28/oauth2-rfc6749/
发布于 2023-05-07 05:48 ・IP 属地美国

文章被以下专栏收录