不使用OAuth能否通过第三方谷歌登录校验获取学校CMS访问权限?
问题结论
你无法通过直接使用谷歌账号ID和密码的方式跳过OAuth授权流程,获取目标CMS的访问权限,原因如下:
- 谷歌官方已在2022年全面封禁了第三方应用直接通过用户名+密码进行身份验证的入口,这类访问被归类为不安全的低权限应用访问,无论是个人谷歌账号还是教育类Google Workspace账号,都不再支持明文密码形式的第三方登录校验,即使你拿到了正确的账号密码也无法调用对应的验证接口。
- 你所适配的本校CMS的谷歌第三方登录逻辑本身就是基于OAuth2.0/OpenID Connect协议设计的,CMS侧只认可谷歌OAuth流程返回的合法授权凭证、ID Token等校验信息,你自行通过账号密码完成的登录结果无法通过CMS的身份校验,自然也拿不到访问权限。
适配方案
你不需要完全走完google-api-python-client的「获取授权→访问谷歌应用→调用API」全流程,仅需要实现OAuth身份验证相关的逻辑即可:
- 改用
google-auth-oauthlib库完成基础的OpenID Connect授权,仅请求openid email profile这几个基础身份校验scope,不需要申请任何谷歌应用API的访问权限,拿到返回的ID Token后直接提交给CMS的登录校验接口,即可完成登录获取访问权限。 - 如果你开发的是无GUI的纯终端客户端,可以选择OAuth2.0的设备授权流实现登录:终端生成授权码和验证地址,用户在任意带浏览器的设备上完成谷歌账号登录授权后,终端即可获取到对应的校验凭证,不需要处理弹窗登录逻辑。
内容的提问来源于stack exchange,提问作者Jgl
相关产品推荐
相关产品推荐

