一草慧、OAuth2.0授權協(xié)議
一種安全的登陸協(xié)議,用戶提交的賬戶密碼不提交到本APP蛋辈,而是提交到授權服務器,待服務器確認后将谊,返回本APP一個訪問令牌冷溶,本APP即可用該訪問令牌訪問資源服務器的資源。由于用戶的賬號密碼并不與本APP直接交互尊浓,而是與官方服務器交互逞频,因而它是安全的。
授權圖示
授權過程
流程:
1栋齿、獲取未授權的Request Token苗胀。
url:request token url。
param:appKey/appSecret瓦堵,簽名方法/簽名(如HMAC-SHA1)基协,timeStamp(時間戳:距1970/0/0/0/0/0的秒數(shù)),nonce(隨機生成的string菇用,防止重復請求)
response:Oauth_Token/Auth_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
參考新浪微博:http://open.weibo.com/wiki/授權機制說明
二、SSO授權技術
全稱:Single Sign On劲藐,用戶只需登陸一次即可訪問相互信任的子系統(tǒng)八堡。用戶訪問系統(tǒng)1時,登陸成功后會返回一個ticket聘芜,當用戶訪問系統(tǒng)2時兄渺,會把ticket帶上,待驗證合法后即可訪問系統(tǒng)2汰现。聽起來跟cookie有點像挂谍,沒錯,Web-SSO便有基于cookie的實現(xiàn)方案瞎饲。
以新浪微博為例口叙,很多手機APP在點擊新浪授權時,會跳到新浪客戶端的登陸頁面嗅战,這里就用到SSO技術啦妄田。在本APP授權新浪微博時,會先檢測手機是否安裝了新浪微博客戶端驮捍。
[[UIApplicationsharedApplication] openURL:xxx]可以打開另一個APP疟呐。這里sinaweibosso://login為客戶端的url并傳遞三個參數(shù),AppKey东且,RedirectURI启具,ssoCallbackScheme。
ssoCallbackScheme是返回的App Url地址珊泳,即自己定義的sinaweibosso.appKey鲁冯。
登陸成功后,客戶端會直接把AccessToken返回給本App旨椒,就完成了一次授權晓褪。
參考新浪微博:http://open.weibo.com/wiki/移動應用SSO授權