如何让 Google TokenAuth 工作?
Posted
技术标签:
【中文标题】如何让 Google TokenAuth 工作?【英文标题】:How to get Google TokenAuth working? 【发布时间】:2012-09-10 12:55:48 【问题描述】:我正在开发一个 youtube 上传应用程序,但在身份验证的特定部分遇到了一些问题。 ClientLogin 到目前为止,作品和上传都被 Youtube 接收。但是,我必须将登录到 Youtube-Frontpage 的用户重定向。我注意到可以通过 url 登录到 gmail:accounts.google.com/TokenAuth?auth=.... 对于 youtube,这应该以完全相同的方式实现。在“gmail”登录将包含我登录 youtube 所需的 cookie。
但是,我没有让它工作。我必须使用哪个身份验证令牌?我尝试了很多,客户端登录响应中提供的那个。我查询了 www.google.com/accounts/IssueAuthToken url(它给了我一个令牌,但我无法使用它登录)。 例如我尝试过的:
https://accounts.google.com/TokenAuth?auth=token-received-by-issueAuthToken&service=youtube&continue=http://youtube.com&source=googletalk
还有:
https://accounts.google.com/TokenAuth?auth=token-received-by-issueAuthToken&service=mail&continue=http://mail.google.com/mail&source=googletalk
这些似乎都不起作用。 Clientlogin 身份验证是使用“service=youtube”完成的 - 这是错误吗?
如果有任何信息可以澄清我的问题,我将不胜感激。
问候, 丹尼斯·费舍尔
【问题讨论】:
【参考方案1】:所以 - 好吧 - 我终于搞定了。我花了一些时间,因为没有真正的文档。 我将解释请求是如何工作的,您需要执行 3 个请求:
第一个:在 google.com/accounts/ClientLogin 上执行默认 clientLogin 提供 Email=emailadress&Passwd=Password&service=gaia 作为数据,以及您要添加到 clientLogin 的任何其他参数。 您将收到 3 个令牌,SID、LSID 和 Auth - 您只需要 SID 和 LSID!
第二个:向 google.com/accounts/IssueAuthToken 发出请求 将参数 SID="Extracted SID"&LSID="Extracted LSID"&service=gaia 添加到 URL。 您将收到一个 AuthToken,它应该以这些字符开头:“APh-....” 如果不是这种情况,您的此请求由于参数错误(很可能缺少“service=gaia”)而失败。 您的第三个请求将需要此令牌。
3rd: 向 google.com/accounts/TokenAuth?auth="token 在步骤 2 中收到"&service="您要进行身份验证的服务发出请求,例如 mail"&source="for example googletalk"&continue="the您被重定向到的网址,这是http://mail.google.com/mail 用于服务邮件"
这第三个请求很可能是在浏览器中完成的。 恭喜,您使用 2-Step Auth 将用户登录到他的 google 帐户。您不需要“真实密码”,应用程序专用密码足以生成这些令牌。
问候, 丹尼斯·费舍尔
【讨论】:
以上是关于如何让 Google TokenAuth 工作?的主要内容,如果未能解决你的问题,请参考以下文章
Django GraphQL JWT:tokenAuth 突变返回“str 对象没有属性解码”
Django REST framework 的TokenAuth认证及外键Serializer基本实现
Google Script:如果行中的值存在于另一个工作表中,则删除行
如何让 Google Maps Directions API 选择正确的机场?