很抱歉这样的虚假问题,但我在网上搜索,仍然不确定是否正确理解这些概念。
据我所知oAuth v2有以下步骤来授权用户:
1-用户通过我们的应用程序的客户端(Web浏览器或移动应用程序)请求oAuth提供商(google,..)登录。
2- oAuth提供程序向客户端返回请求令牌
3-客户端将此请求令牌发送到服务器端
来自oAuth提供商的4-服务器端请求生成长期访问令牌+刷新令牌(服务器使用此请求发送应用程序密钥以验证自身)5-服务器端可以请求从客户端定义的范围中的任何API,并且该访问令牌允许用户
通过向oAuth提供程序发送刷新令牌,服务器端应该在访问令牌仍然有效时刷新访问令牌。答案 0 :(得分:3)
专门讲谷歌
第1步:
用户会显示一个网页,他们可以决定是否授予您访问权限
您可以在此实例中看到的访问权限范围是Google分析数据,具体取决于您要求用户访问不同内容的范围。
第2步:
假设用户点击了“接受”并授予您访问权限,则会给您Authentication code
。
验证码不是很好。它们可能是短暂的,但我还没有对此进行测试,并且在文档中没有看到任何关于你需要使用它们的时间。
更新:验证代码仅适用于交换刷新令牌和访问令牌的一件事。完成此操作后,Authentication code
无效。 (第3步)
第3步:
您的系统会将authentication code
与client id
和secret
一起发送到身份验证服务器。这次作为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