客户端必须得到用户的授权(authorizationgrant),才能获得令牌(access token)。oAuth2.0定义了四种授权方式:

    简化模式(implicit)
    这种模式比授权码模式少了code环节,回调url直接携带token
    这种模式的使用场景是基于浏览器的应用
    这种模式基于安全性考虑,建议把token时效设置短一些
    implicit模式(隐式模式)和授权码模式(authorization_code)访问差不多,相比之下,少了一步获取code的步骤,而是直接获取token

    授权码模式(authorization code)

    • 设计了auth code,通过这个code再获取token
    • 使用client_id和client_secret换取授权码(code),再通过授权码换取令牌

    密码模式(resource owner password credentials)

    • 使用client_id和client_secret以及用户名密码直接获取秘钥

    客户端模式(client credentials)

    • 这种模式直接根据client的id和密钥即可获取token,无需用户参与
    • 这种模式比较合适消费api的后端服务,比如拉取一组用户信息等