OAuth

OAuth

open authorization 开放认证\
一般用于第三方登录,例如微信授权登录,在不知道你微信账号密码的情况下,仍然可以登录其他网站\
流程

  1. 用户访问网站-> 选择第三方登录->请求第三方地址->输入第三方账号密码->第三方返回登录结果

版本

  1. 1.0发布于07年,存在bug
  2. 2.0发布于10年初

OAuth应用

  1. 根据第三方用户登录方式不同,开发特定功能
  2. 同一公司间用户数据开放,例如淘宝账号登录支付宝等

3

oauth实现流程

  1. 请求oaut登录页,这个登录页的url成为request token url,未授权的令牌请求服务地址

    • 此网址是带有特定参数的url,例如跳转地址,appid等
    • 会生成一个appid和一个appkey
    • 例如:https://graph.qq.com/oauth/.....://www.baid.com/xxx
    • 第三方登录需要先去开通,会分配一个client_id给用户,申请时,需要填写回调地址,qq会验证这个redirect_uri是否合法等
  2. 用户使用qq登录并授权

    • 验证成功会跳转到redirect_uri,并且会带上一个参数CODE,是一个加密的字符串
  3. 返回登录结果

    • 利用返回的code,验证code是否合法,
    • user authorization url 用户授权的令牌请求服务器,进行code验证的url,防止回话劫持,返回一个假code
    • 例如 https://xxx.qq.com/oauth/...?...
    • code有过期时间,很快就过期,一个code值可以使用一次
    • 响应数据会返回登录用户的一些基本信息,qq号,头像,昵称等

accessToken

  1. 用户通过第三方应用访问oauth接口的令牌
  2. 利用此令牌可以获取一些用户信息,分享内容等,标识这个第三方应用已经登录,有一些权限
  3. accessToken与refreshToken

    • accesstoken 过期时间一般很长10天以上
    • accessToken的更新有两种,一是客户端重新授权,2是服务器推送

你可能感兴趣的:(接口,oauth,oauth2.0)