美文网首页
OAuth2.0笔记

OAuth2.0笔记

作者: output | 来源:发表于2018-03-07 21:41 被阅读9次

    OAuth2.0笔记

    image

    角色

    一般资源服务器和授权服务器是一个

    • 资源拥有者
    • 客户端应用
    • 资源服务器
    • 授权服务器
    image

    客户端类型

    OAuth 2.0规范定义了两种客户端类型:

    • 保密的:web应用
    • 公有的:用户代理、原生

    下图是一个保密的客户端应用即web应用

    image

    授权

    授权批准由资源服务器及其相关的授权服务器给客给予户端应用。OAuth 2.0四种不同类型授权批准:

    • 授权码
    • 契约
    • 资源拥有者密钥证书
    • 客户端证书

    下面是当用授权码授权客户端应用时的授权过程:

    image

    端点

    OAuth 2.0定义了一系列端点。端点就是web服务器上的URI。这些端点定义有:

    • 授权端点 user--->server
    • 令牌端点 client--->server
    • 重定向端点 user--->client
    image

    请求和响应

    取决于授权类型,下面只记录一下授权码授权的请求和响应。

    授权码授权总共有2个请求和2个响应组成。一个授权请求+响应,一个信息请求+响应。

    授权请求:

    response_type 必须。必须被设置到代码里
    client_id 必须。当客户端被注册时,授权服务器要标识的客户端。
    redirect_uri 可选。通过客户端注册的重定向URI。
    scope 可选。请求可能的作用域。
    state 可选(推荐的)。任何需要被传递到客户端请求的URI客户端的状态。

    授权响应:

    code 必须。授权码
    state 如果出现在请求中,必须包含。如果有的话,和客户端请求中发送的state参数一样。

    授权错误:

    error 必须。必须是预先定义的错误码之一。参见规范查查这些错误码及它们的含义。
    error_description 可选。一段UTF-8编码的描述错误的文本。适用于开发者,而不是最终用户。
    error_uri 可选。 一个指向包含人类可读的错误信息网页的URI。
    state 必须。如果出现在授权请求期间,和请求中的state参数一样。

    令牌请求:

    grant_type 必须。必须被设置到授权码中。
    code 必须。被授权服务器接收到的授权码。
    redirect_uri 必须。如果请求URI包括在授权请求中,之后必须是相同的。

    令牌响应:

    { "access_token"  : "...",
      "token_type"    : "...",
      "expires_in"    : "...",
      "refresh_token" : "...",
    }
    

    参考

    相关文章

      网友评论

          本文标题:OAuth2.0笔记

          本文链接:https://www.haomeiwen.com/subject/koisfftx.html