【发布时间】:2014-01-25 09:46:51
【问题描述】:
我创建了自己的 OAuth2 客户端来连接到 google API(特别是 YouTube)。我第一次授权时所有作品都按预期进行:
- 我使用适当的参数(
response_type=code、redirect_uri=urn:ietf:wg:oauth:2.0:oob等)执行POST到https://accounts.google.com/o/oauth2/auth - 我在 UIWebView 中处理响应,让用户通过登录对话框
- 我从最后一页的标题中获取了请求令牌所需的授权码
- 我向
https://accounts.google.com/o/oauth2/token发出令牌请求POST - 我获得了 access_token 和 refresh_token 等存储在我的应用程序中
但是,我有一个退出按钮,这就是问题所在;这基本上将我存储在我的应用程序中的access_token 和refresh_token 设置回nil,就是这样:
- (void)clearCredentials
{
_accessToken = nil;
_refreshToken = nil;
_tokenExpirationDate = nil;
}
当我想再次登录时,我调用和以前一样的授权方法,所有参数都像第一次一样正确设置。
但是,在通过登录对话框时,我没有得到我将授予应用程序访问 youtube 帐户的页面,因此也没有得到我可以从页面标题中获取授权代码的页面。相反,它向我显示了一个错误页面 (invalid_request),提示我未能提供 response_type。
我还尝试撤销access_token。撤销按预期工作,但在授权后,我仍然无法获得用户可以再次批准权限的页面。
任何人有线索可以为我指明正确的方向吗?我该怎么办?
【问题讨论】:
标签: ios iphone youtube oauth-2.0 google-oauth