【发布时间】:2015-09-17 19:22:04
【问题描述】:
我有一个任务,我需要使用电子邮件和密码来验证用户并获取访问令牌。我有 api 密钥、秘密和基本 URL。我不需要为作业使用重定向 URL,也没有提供它。我不确定使用哪种方法或使用哪个库。我淹没在丰富的信息中,这让我感到困惑。我需要指出正确的方向......欢迎任何形式的帮助。谢谢
【问题讨论】:
-
您要求使用 Oauth 1.0 还是 2.0?从你的问题很难判断。 1.0 使用“消费者密钥”和“消费者秘密”(所以我想可能是 1.0),但它需要重定向(可能不需要)。 2.0 不需要重定向(很好),但使用“客户端 ID”和“客户端密码”(不符合要求)。请澄清,以获得进一步的帮助。
-
查看 OAuth 2.0 规范中的 Resource Owner Password Credentials Grant。我相信这是指令所要求的。它显示了一个示例令牌请求,其中客户端 id(api 密钥......也许)和客户端密码被 base64 编码到授权标头中。您可能想与您的讲师或给您分配作业的人澄清这一点。另请参阅Basic Authentication,了解如何正确制定授权标头
-
大纲如下
-
在本练习中,使用此处概述的电子邮件/密码流程来获取访问令牌 xxxxxxxxxxxxxx。请注意,本练习不需要 redirect_uri URL 参数,只需要用户名、密码、client_id 和 client_secret。您不必关心令牌过期或刷新此分配的令牌,您只对响应的 access_token 部分感兴趣。一旦您获得用户的访问令牌,任何后续 API 调用都可以通过身份验证将 Authorization HTTP 标头设置为 OAuth2
”。 -
是的,我提供的链接是您想要查看的。用户名和密码作为 form-urlencoded 数据(连同 grant_type)在正文中发送,
client_id:client_secret(当然是实际值)在Authorization标头中进行 Base64 编码。请参考我提供的资源链接
标签: android json rest oauth oauth-2.0