2

我正在开发一个 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”完成的——这是错误吗?

我很感激任何可以澄清我的问题的信息。

问候,丹尼斯·菲舍尔

4

1 回答 1

10

所以 - 好吧 - 我终于得到了这个工作。我花了一些时间,因为没有真正的文档。我将解释请求是如何工作的,您需要执行 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”)而失败。您的第三个请求将需要此令牌。

第三:向 google.com/accounts/TokenAuth?auth="token 在步骤 2 中收到"&service="您要进行身份验证的服务发出请求,例如 mail"&source="例如 googletalk"&continue="您所在的 url '被重定向到,这是服务邮件的http://mail.google.com/mail "

这第三个请求很可能是在浏览器中完成的。恭喜,您使用 2-Step Auth 将用户登录到他的 google 帐户。您不需要“真实密码”,应用程序特定密码足以生成这些令牌。

问候,丹尼斯·菲舍尔

于 2012-09-18T13:12:24.237 回答