一、OAuth2.0授權(quán)協(xié)議
一種安全的登陸協(xié)議,用戶提交的賬戶密碼不提交到本APP,而是提交到授權(quán)服務(wù)器,待服務(wù)器確認(rèn)后,返回本APP一個(gè)訪問(wèn)令牌,本APP即可用該訪問(wèn)令牌訪問(wèn)資源服務(wù)器的資源。由于用戶的賬號(hào)密碼并不與本APP直接交互,而是與官方服務(wù)器交互,因而它是安全的。
授權(quán)圖示

流程:
1、獲取未授權(quán)的Request Token。
url:request token url。
param:appKey/appSecret,簽名方法/簽名(如HMAC-SHA1),timeStamp(時(shí)間戳:距1970/0/0/0/0/0的秒數(shù)),nonce(隨機(jī)生成的string,防止重復(fù)請(qǐng)求)
response:Oauth_Token/Auth_Secret
2、獲取用戶授權(quán)的Request Token。
url:user authorizition url。
param:Oauth_Token(上個(gè)步驟返回的令牌),callback_url(授權(quán)成功后返回的地址)
response:Oauth_Token(被用戶授權(quán)或否決的令牌)
3、用已授權(quán)的Request Token換取AccessToken。
url:access token url。
param:appKey,Oauth_Token(上個(gè)步驟返回的令牌),簽名,TimeStamp,nonce
response:Access_Token/Secret
參考新浪微博:http://open.weibo.com/wiki/授權(quán)機(jī)制說(shuō)明
二、SSO授權(quán)技術(shù)
全稱:Single Sign On,用戶只需登陸一次即可訪問(wèn)相互信任的子系統(tǒng)。用戶訪問(wèn)系統(tǒng)1時(shí),登陸成功后會(huì)返回一個(gè)ticket,當(dāng)用戶訪問(wèn)系統(tǒng)2時(shí),會(huì)把ticket帶上,待驗(yàn)證合法后即可訪問(wèn)系統(tǒng)2。聽(tīng)起來(lái)跟cookie有點(diǎn)像,沒(méi)錯(cuò),Web-SSO便有基于cookie的實(shí)現(xiàn)方案。
以新浪微博為例,很多手機(jī)APP在點(diǎn)擊新浪授權(quán)時(shí),會(huì)跳到新浪客戶端的登陸頁(yè)面,這里就用到SSO技術(shù)啦。在本APP授權(quán)新浪微博時(shí),會(huì)先檢測(cè)手機(jī)是否安裝了新浪微博客戶端。
[[UIApplicationsharedApplication] openURL:xxx]可以打開(kāi)另一個(gè)APP。這里sinaweibosso://login為客戶端的url并傳遞三個(gè)參數(shù),AppKey,RedirectURI,ssoCallbackScheme。
ssoCallbackScheme是返回的App Url地址,即自己定義的sinaweibosso.appKey。
登陸成功后,客戶端會(huì)直接把AccessToken返回給本App,就完成了一次授權(quán)。
參考新浪微博:http://open.weibo.com/wiki/移動(dòng)應(yīng)用SSO授權(quán)