【问题标题】:Is short lived access token and request token and authorization code the same thing?短期访问令牌和请求令牌和授权码是一回事吗?
【发布时间】:2015-06-26 04:14:24
【问题描述】:

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

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

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

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

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

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

5- 服务器端可以在客户端定义的范围内请求任何 API,并通过此访问令牌由用户允许

6- 当访问令牌仍然有效时,服务器端应通过向 oAuth 提供者发送刷新令牌来刷新访问令牌。

【问题讨论】:

    标签: oauth access-token


    【解决方案1】:

    专门说谷歌

    第 1 步:

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

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

    第 2 步:

    假设用户点击接受并授予您访问权限,您将获得Authentication code

    验证码的用处不大。它们可能寿命很短,但我没有对此进行测试,也没有在文档中看到任何关于你必须使用它们的确切时间。

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

    第 3 步:

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

    然后服务器将返回给您一个访问令牌和一个刷新令牌。

    {
    "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。

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

    第 4 步:

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

    进一步阅读:

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

    还有一些轻松的床时间阅读The OAuth 2.0 Authorization Framework

    【讨论】:

    • 那么请求令牌和授权码是一回事吗?那么短期访问令牌呢?短期访问令牌是您提到的 JSON 的访问令牌部分,而长期令牌是刷新令牌吗?
    • 当用户接受您的访问时,没有授权码只是一次性的事情。一旦您使用它来获取刷新令牌,它就再也不会使用了。短期访问令牌是 json 中的 Access_token,有效期为 1 小时,用于访问 API。 Refresh_token 是好的,只要用户不撤销您的访问权限,并用于在过期后获取新的访问令牌。
    • 那么这个过程中著名的请求令牌和长寿命访问令牌在哪里?
    • 如果我们在谈论谷歌,除非考虑公共 API 的 api 密钥,否则没有长寿命的访问令牌这样的东西。不确定您所说的请求令牌是什么意思,猜测访问令牌可以考虑。
    猜你喜欢
    • 2020-03-10
    • 2015-02-13
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2020-07-19
    • 2011-09-19
    • 2016-10-14
    • 1970-01-01
    相关资源
    最近更新 更多