zoukankan      html  css  js  c++  java
  • OAuth2.0授权码模式

    OAuth2.0简单说就是一种授权的协议,OAuth2.0在客户端与服务提供商之间,设置了一个授权层(authorization layer)。客户端不能直接登录服务提供商,只能登录授权层,以此将用户与客户端区分开来。然后客户端在登录时候不使用账号密码,而是使用会自动过期的令牌token

    定义比较难理解,可以举个例子,假如我们要登录豆瓣网,可以你是没账号的,又不想注册,然后这时候可以用QQ登录,登录时候会转跳到QQ登录页面,这个就是QQ就是一个认证服务器,豆瓣是服务提供商,也可以说是资源服务器

    在这里插入图片描述

    • (A)打开客户端,重定向,请求给予授权。

    • (B)用户开始给予客户端授权

    • (C)客户端使用获得的授权,向认证服务器申请令牌。

    • (D)客户端拿授权码去认证服务器认证,确认提供同意发放令牌。

    • (E)认证通过,客户端使用令牌,向资源服务器申请获取资源。

    • (F)资源服务器确认令牌无误,同意向客户端开放资源。

    OAuth2.0授权方式:

    • 授权码模式(authorization code)
    • 简化模式(implicit)
    • 密码模式(resource owner password credentials)
    • 客户端模式(client credentials)

    一般认证授权过程需要的参数:

    • response_type:授权类型,必选项
    • client_id:客户端的ID,必选项
    • redirect_uri:重定向URI,可选项
    • scope:申请的权限范围,可选项
    • state:客户端的当前状态,可以指定任意值,认证服务器会原封不动地返回这个值

    其实总结一下,Oauth2.0用授权码方式,无非就是用户访问客户端就直接重定向到认证服务器,然后输入账号密码等等通过验证后,认证服务器会重定向到redirect_uri并将授权码附在url上,然后再拿授权码去认证,认证通过发放令牌,登录成功

    参考资料:

    http://www.rfcreader.com/#rfc6749_line1019

    http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html

    https://gitee.com/sunym1993/datauoauthqq_bean

    https://www.cnblogs.com/flashsun/p/7424071.html

  • 相关阅读:
    Objective-C实用类和协议
    KVC(Key-Value-Coding)和KVO(Key-Value-Observer)
    Xcode
    IOS模拟器
    沙盒机制
    UIScrollView
    NSPredicate
    输入控件适应键盘
    10步成为专业iOS开发者——新手向,从零起步
    2015 年五大移动端设计趋势
  • 原文地址:https://www.cnblogs.com/mzq123/p/11255209.html
Copyright © 2011-2022 走看看