1、OAuth2.0受權協議安全
一種安全的登錄協議,用戶提交的帳戶密碼不提交到本APP,而是提交到受權服務器,待服務器確認後,返回本APP一個訪問令牌,本APP便可用該訪問令牌訪問資源服務器的資源。因爲用戶的帳號密碼並不與本APP直接交互,而是與官方服務器交互,於是它是安全的。服務器
圖示:cookie
流程:app
一、獲取未受權的Request Token。url
url:request token url。spa
param:appKey/appSecret,簽名方法/簽名(如HMAC-SHA1),timeStamp(時間戳:距1970/0/0/0/0/0的秒數),nonce(隨機生成的string,防止重複請求).net
response:Oauth_Token/Oauth_Secretblog
二、獲取用戶受權的Request Token。token
url:user authorizition url。資源
param:Oauth_Token(上個步驟返回的令牌),callback_url(受權成功後返回的地址)
response:Oauth_Token(被用戶受權或否決的令牌)
三、用已受權的Request Token換取AccessToken。
url:access token url。
param:appKey,Oauth_Token(上個步驟返回的令牌),簽名,TimeStamp,nonce
response:Access_Token/Secret
2、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