短期访问令牌和请求令牌和授权代码是一回事吗?

时间:2015-04-19 14:05:58

标签: oauth access-token

很抱歉这样的虚假问题,但我在网上搜索,仍然不确定是否正确理解这些概念。

据我所知oAuth v2有以下步骤来授权用户:

1-用户通过我们的应用程序的客户端(Web浏览器或移动应用程序)请求oAuth提供商(google,..)登录。

2- oAuth提供程序向客户端返回请求令牌

3-客户端将此请求令牌发送到服务器端

来自oAuth提供商的4-服务器端请求生成长期访问令牌+刷新令牌(服务器使用此请求发送应用程序密钥以验证自身)

5-服务器端可以请求从客户端定义的范围中的任何API,并且该访问令牌允许用户

通过向oAuth提供程序发送刷新令牌,服务器端应该在访问令牌仍然有效时刷新访问令牌。

1 个答案:

答案 0 :(得分:3)

专门讲谷歌

第1步:

用户会显示一个网页,他们可以决定是否授予您访问权限

enter image description here

您可以在此实例中看到的访问权限范围是Google分析数据,具体取决于您要求用户访问不同内容的范围。

第2步:

假设用户点击了“接受”并授予您访问权限,则会给您Authentication code

enter image description here

验证码不是很好。它们可能是短暂的,但我还没有对此进行测试,并且在文档中没有看到任何关于你需要使用它们的时间。

更新:验证代码仅适用于交换刷新令牌和访问令牌的一件事。完成此操作后,Authentication code无效。 (第3步)

第3步:

您的系统会将authentication codeclient idsecret一起发送到身份验证服务器。这次作为HTTP POST,宝贵的请求是HTTP GET。

然后,服务器将向您返回Access令牌和刷新令牌。

{
"access_token" : "ya29.1.AADtN_VSBMC2Ga2lhxsTKjVQ_ROco8VbD6h01aj4PcKHLm6qvHbNtn-_BIzXMw",
"token_type" : "Bearer",
"expires_in" : 3600,
"refresh_token" : "1/J-3zPA8XR1o_cXebV9sDKn_f5MTqaFhKFxH-3PUPiJ4"
}

访问令牌是短暂的,有效期为3600秒或一小时。只要用户没有撤​​销您的访问权限,或者我认为它已经使用了6个月,并且您的应用程序已被授予最多25个刷新令牌(需要加倍),refresh_token就会很好检查那个号码)

您可以使用访问令牌在下一个小时随意访问API。

(更新)刷新令牌用于在过期后获取新的Access令牌。

第4步:

小时结束后访问令牌不再有效,系统应该接受刷新请求并从身份验证服务器请求新的访问令牌。

进一步阅读:

如果您想了解如何进行原始调用以及返回的内容,请查看本教程3 legged oauth2 flow

和一些轻床时间阅读The OAuth 2.0 Authorization Framework