• OAuth2.0和SSO授权


    一、OAuth2.0授权协议

      一种安全的登陆协议,用户提交的账户密码不提交到本APP,而是提交到授权服务器,待服务器确认后,返回本APP一个访问令牌,本APP即可用该访问令牌访问资源服务器的资源。由于用户的账号密码并不与本APP直接交互,而是与官方服务器交互,因而它是安全的。

    图示:

    授权图示

    流程:

      1、获取未授权的Request Token。

        url:request token url。

        param:appKey/appSecret,签名方法/签名(如HMAC-SHA1),timeStamp(时间戳:距1970/0/0/0/0/0的秒数),nonce(随机生成的string,防止重复请求)

        response:Oauth_Token/Oauth_Secret

      2、获取用户授权的Request Token。

        url:user authorizition url。

        param:Oauth_Token(上个步骤返回的令牌),callback_url(授权成功后返回的地址)

        response:Oauth_Token(被用户授权或否决的令牌)

      3、用已授权的Request Token换取AccessToken。

        url:access token url。

        param:appKey,Oauth_Token(上个步骤返回的令牌),签名,TimeStamp,nonce

        response:Access_Token/Secret

    二、SSO授权技术

      全称:Single Sign On,用户只需登陆一次即可访问相互信任的子系统。用户访问系统1时,登陆成功后会返回一个ticket,当用户访问系统2时,会把ticket带上,待验证合法后即可访问系统2。听起来跟cookie有点像,没错,Web-SSO便有基于cookie的实现方案。

      以新浪微博为例,很多手机APP在点击新浪授权时,会跳到新浪客户端的登陆页面,这里就用到SSO技术啦。在本APP授权新浪微博时,会先检测手机是否安装了新浪微博客户端。

      [[UIApplicationsharedApplication] openURL:xxx]可以打开另一个APP。这里sinaweibosso://login为客户端的url并传递三个参数,AppKey,RedirectURI,ssoCallbackScheme。

      ssoCallbackScheme是返回的App Url地址,即自己定义的sinaweibosso.appKey。

      登陆成功后,客户端会直接把AccessToken返回给本App,就完成了一次授权。  

    by sschu

    参考:http://www.haogongju.net/art/1882644

  • 相关阅读:
    [LeetCode] 1640. Check Array Formation Through Concatenation
    [LeetCode] 754. Reach a Number
    [LeetCode] 1457. Pseudo-Palindromic Paths in a Binary Tree
    [LeetCode] 1352. Product of the Last K Numbers
    [LeetCode] 261. Graph Valid Tree
    [LeetCode] 323. Number of Connected Components in an Undirected Graph
    [LeetCode] 1605. Find Valid Matrix Given Row and Column Sums
    [LeetCode] 1253. Reconstruct a 2-Row Binary Matrix
    [LeetCode] 455. Assign Cookies
    [LeetCode] 1358. Number of Substrings Containing All Three Characters
  • 原文地址:https://www.cnblogs.com/ydhliphonedev/p/3232128.html
Copyright © 2020-2023  润新知