專利名稱:第三方應(yīng)用獲得用戶的會(huì)話令牌的方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本申請(qǐng)涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種第三方應(yīng)用獲得用戶的會(huì)話 Token (令牌)的方法、裝置及系統(tǒng)。
背景技術(shù):
開放平臺(tái)是指由網(wǎng)站(例如電子商務(wù)網(wǎng)站)提供的、面向第三方的開放式基礎(chǔ)服平臺(tái),以其 OpenAPI (Open Application Programming Interface, Jf^jSffifMj^^Π ) W
形式開放基礎(chǔ)服務(wù)。開放平臺(tái)具備的一個(gè)重要功能是向第三方應(yīng)用授權(quán),允許第三方應(yīng)用從開放平臺(tái)獲取Token (令牌),并通過該Token獲取用戶數(shù)據(jù),例如用戶的地址、交易信息等。網(wǎng)站提供的開放平臺(tái)普遍采用固定Token與會(huì)話Token相結(jié)合的授權(quán)方式,實(shí)現(xiàn)開放平臺(tái)和用戶對(duì)第三方應(yīng)用的授權(quán),會(huì)話Token也稱為SessionKey (會(huì)話密鑰)。固定 Token與會(huì)話Token相結(jié)合的授權(quán)方式是指開放平臺(tái)向第三方應(yīng)用分配一個(gè)固定Token, 用戶在發(fā)起對(duì)第三方應(yīng)用的訪問時(shí),從開放平臺(tái)獲取為該用戶分配的會(huì)話Token,并將該會(huì)話Token提交給第三方應(yīng)用。該授權(quán)方式能夠保證第三方應(yīng)用必須經(jīng)過開放平臺(tái)與用戶的雙重授權(quán),才能訪問用戶數(shù)據(jù)。其中,固定Token—般是由第三方應(yīng)用的開發(fā)者向開放平臺(tái)申請(qǐng)、并由開放平臺(tái)的管理者批準(zhǔn)后分配給第三方應(yīng)用;第三方應(yīng)用對(duì)會(huì)話Token的獲取需要用戶的授權(quán)。如何保證安全性、并能夠兼容各種應(yīng)用場(chǎng)景,成為解決第三方應(yīng)用獲得用戶的會(huì)話Token的關(guān)鍵問題之一。現(xiàn)有技術(shù)中,各個(gè)開放平臺(tái)都推出了會(huì)話Token的獲取機(jī)制,例如 FacebookConnect、OAuth 等,均是基于 HTTP (HyperText Transfer Protoco 1,超文本傳輸協(xié)議)跳轉(zhuǎn)的方式實(shí)現(xiàn)第三方應(yīng)用對(duì)用戶的會(huì)話Token的獲取。用戶訪問第三方應(yīng)用的實(shí)現(xiàn)流程,如圖1所示,包括如下步驟步驟1、用戶向開放平臺(tái)發(fā)起對(duì)第三方應(yīng)用的訪問;步驟2、開放平臺(tái)驗(yàn)證用戶身份;步驟3、在用戶通過身份驗(yàn)證之后,開放平臺(tái)指示用戶跳轉(zhuǎn)到第三方應(yīng)用,指示中攜帶為用戶分配的會(huì)話Token;步驟4、用戶基于HTTP跳轉(zhuǎn)的方式訪問第三方應(yīng)用,提交開放平臺(tái)為該用戶分配的會(huì)話Token ;步驟5、第三方應(yīng)用獲得用戶的會(huì)話Token ;步驟6、第三方應(yīng)用向開放平臺(tái)訪問用戶數(shù)據(jù),并攜帶固定Token和會(huì)話Token ;步驟7、開放平臺(tái)驗(yàn)證第三方應(yīng)用攜帶的固定Token和會(huì)話Token ;步驟8、對(duì)固定Token和會(huì)話Token驗(yàn)證通過后,開放平臺(tái)向第三方應(yīng)用返回用戶數(shù)據(jù);步驟9、第三方應(yīng)用根據(jù)開放平臺(tái)返回的用戶數(shù)據(jù)向用戶進(jìn)行頁(yè)面展示。其中,步驟1 步驟5為第三方應(yīng)用獲得用戶的會(huì)話Token的實(shí)現(xiàn)流程,步驟6 步驟9為第三方應(yīng)用訪問用戶數(shù)據(jù)并進(jìn)行頁(yè)面展示的實(shí)現(xiàn)流程。上述第三方應(yīng)用獲得用戶的會(huì)話Token的技術(shù)方案,基于HTTP跳轉(zhuǎn)的方式實(shí)現(xiàn),即需要用戶通過登錄過程獲取開放平臺(tái)為該用戶分配的會(huì)話token,用戶再基于HTTP跳轉(zhuǎn)的方式訪問第三方應(yīng)用,提交開放平臺(tái)為該用戶分配的會(huì)話Token?,F(xiàn)有第三方應(yīng)用獲得用戶的會(huì)話Token的技術(shù)方案,僅適用于Web (萬(wàn)維網(wǎng))應(yīng)用場(chǎng)景,而針對(duì)基于客戶端軟件的應(yīng)用場(chǎng)景,以及基于命令行的應(yīng)用場(chǎng)景無(wú)法適用,使得使用場(chǎng)景單一;現(xiàn)有第三方應(yīng)用獲得用戶的會(huì)話Token的技術(shù)方案,要求第三方應(yīng)用必需能夠嵌入開放平臺(tái)的用戶登錄頁(yè)面,不適用于Iframe等場(chǎng)景下的頁(yè)面, 可定制化程度低;在第三方應(yīng)用獲得用戶的會(huì)話Token的過程中,會(huì)話Token在開放平臺(tái)與用戶之間以及用戶與第三方應(yīng)用之間進(jìn)行了多次傳輸,導(dǎo)致該會(huì)話Token容易被劫持,系統(tǒng)的安全性較低。申請(qǐng)內(nèi)容本申請(qǐng)實(shí)施例提供一種第三方應(yīng)用獲得用戶的會(huì)話令牌的方法、裝置及系統(tǒng),用以解決現(xiàn)有基于HTTP跳轉(zhuǎn)的方式存在的使用場(chǎng)景單一、可定制化程度低,以及系統(tǒng)的安全性較低的問題。本申請(qǐng)實(shí)施例提供一種第三方應(yīng)用獲得用戶的會(huì)話令牌的方法,包括第三方應(yīng)用接收用戶發(fā)起的訪問,確認(rèn)當(dāng)前未獲得用戶的會(huì)話令牌Token時(shí),指示用戶獲得并提交授權(quán)碼;第三方應(yīng)用接收用戶提交的從開放平臺(tái)處獲得的授權(quán)碼;以及基于所述授權(quán)碼向開放平臺(tái)申請(qǐng)用戶的會(huì)話Token,并獲得開放平臺(tái)對(duì)所述授權(quán)碼驗(yàn)證通過后返回的用戶的會(huì)話Token。本申請(qǐng)實(shí)施例提供一種第三方應(yīng)用獲得用戶的會(huì)話令牌的裝置,包括處理單元,用于接收用戶發(fā)起的訪問,確認(rèn)當(dāng)前未獲得用戶的會(huì)話令牌Token時(shí), 指示用戶獲得并提交授權(quán)碼;接收單元,用于接收用戶提交的從開放平臺(tái)處獲得的授權(quán)碼;獲取單元,用于基于所述授權(quán)碼向開放平臺(tái)申請(qǐng)用戶的會(huì)話Token,并獲得開放平臺(tái)對(duì)所述授權(quán)碼驗(yàn)證通過后返回的用戶的會(huì)話Token。本申請(qǐng)實(shí)施例提供一種第三方應(yīng)用獲得用戶的會(huì)話令牌的方法,包括開放平臺(tái)接收用戶獲取授權(quán)碼的請(qǐng)求;開放平臺(tái)在用戶通過身份驗(yàn)證之后,向用戶提供授權(quán)碼,以使所述用戶將獲得的授權(quán)碼提交給第三方應(yīng)用;開放平臺(tái)接收第三方應(yīng)用基于所述授權(quán)碼對(duì)用戶的會(huì)話Token的申請(qǐng),對(duì)所述授權(quán)碼進(jìn)行驗(yàn)證,并在驗(yàn)證通過后向第三方應(yīng)用返回用戶的會(huì)話Token。本申請(qǐng)實(shí)施例提供一種第三方應(yīng)用獲得用戶的會(huì)話令牌的系統(tǒng),包括第三方應(yīng)用和開放平臺(tái),其中所述第三方應(yīng)用,用于接收用戶發(fā)起的訪問,確認(rèn)當(dāng)前未獲得用戶的會(huì)話令牌 Token時(shí),指示用戶獲得并提交授權(quán)碼;接收用戶提交的從開放平臺(tái)處獲得的授權(quán)碼,以及基于所述授權(quán)碼向開放平臺(tái)申請(qǐng)用戶的會(huì)話Token,并獲得開放平臺(tái)返回的用戶的會(huì)話 Token ;所述開放平臺(tái),用于向用戶提供授權(quán)碼,以及在第三方應(yīng)用發(fā)起對(duì)用戶的會(huì)話Token的申請(qǐng)時(shí),對(duì)所述授權(quán)碼進(jìn)行驗(yàn)證并在驗(yàn)證通過后向第三方應(yīng)用返回用戶的會(huì)話 Token0本申請(qǐng)實(shí)施例提供的第三方應(yīng)用獲得用戶的會(huì)話Token的方法、裝置及系統(tǒng),用戶首先從開放平臺(tái)處獲得授權(quán)碼并提交給第三方應(yīng)用,第三方應(yīng)用基于授權(quán)碼向開放平臺(tái)申請(qǐng)用戶的會(huì)話Token,并最終獲得用戶的會(huì)話Token。本申請(qǐng)實(shí)施例將用戶登錄與第三方應(yīng)用的使用相分離,用戶通過登錄過程獲取到授權(quán)碼之后,在使用第三方應(yīng)用時(shí)直接提交授權(quán)碼,以一種比較簡(jiǎn)單和安全的基于授權(quán)碼的方式,實(shí)現(xiàn)開放平臺(tái)向第三方應(yīng)用的單向授權(quán),第三方應(yīng)用無(wú)需通過HTTP跳轉(zhuǎn)的方式即可安全獲得用戶的會(huì)話Token,從而實(shí)現(xiàn)對(duì)各種使用場(chǎng)景的兼容,提高可定制化程度。在第三方應(yīng)用獲得用戶的會(huì)話Token的過程中, 以授權(quán)碼代替會(huì)話Token在開放平臺(tái)與用戶之間以及用戶與第三方應(yīng)用之間進(jìn)行傳輸,即使該授權(quán)碼被劫持,劫持者也不能憑借該授權(quán)碼訪問用戶數(shù)據(jù),通過減少會(huì)話Token在系統(tǒng)中的傳輸次數(shù),從而有效增強(qiáng)了系統(tǒng)的安全性。本申請(qǐng)的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實(shí)施本申請(qǐng)而了解。本申請(qǐng)的目的和其他優(yōu)點(diǎn)可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)和獲得。
圖1為現(xiàn)有技術(shù)中用戶訪問第三方應(yīng)用的實(shí)現(xiàn)流程圖;圖2為本申請(qǐng)實(shí)施例中第三方應(yīng)用獲得用戶的會(huì)話Token的方法流程圖;圖3為本申請(qǐng)實(shí)施例中用戶訪問第三方應(yīng)用的實(shí)現(xiàn)流程圖;圖4為本申請(qǐng)實(shí)施例中第一頁(yè)面的示意圖;圖5為本申請(qǐng)實(shí)施例中第二頁(yè)面的示意圖;圖6為本申請(qǐng)實(shí)施例中第三方應(yīng)用獲得用戶的會(huì)話Token的系統(tǒng)示意圖;圖7為本申請(qǐng)實(shí)施例中第三方應(yīng)用獲得用戶的會(huì)話Token的裝置框圖。
具體實(shí)施例方式本申請(qǐng)實(shí)施例提供了一種第三方應(yīng)用獲得用戶的會(huì)話Token即會(huì)話密鑰的方法、 裝置及系統(tǒng),基于授權(quán)碼的方式實(shí)現(xiàn),第三方應(yīng)用無(wú)需通過HTTP跳轉(zhuǎn)的方式即可安全獲得用戶的會(huì)話Token,從而實(shí)現(xiàn)對(duì)各種使用場(chǎng)景的兼容,提高可定制化程度。以下結(jié)合說明書附圖對(duì)本申請(qǐng)的優(yōu)選實(shí)施例進(jìn)行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說明和解釋本申請(qǐng),并不用于限定本申請(qǐng),并且在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。本申請(qǐng)的具體實(shí)施涉及開放平臺(tái)、第三方應(yīng)用、以及用戶之間的相互信任和授權(quán), 前提條件如下1)用戶完全信任開放平臺(tái),向開放平臺(tái)提供用戶ID (Identifier,標(biāo)識(shí))和密碼;2)第三方應(yīng)用可以基于用戶的授權(quán)獲取用戶數(shù)據(jù);3)第三方應(yīng)用從開放平臺(tái)獲取用戶數(shù)據(jù)時(shí),開放平臺(tái)需要驗(yàn)證為第三方應(yīng)用分配的固定iToken和為用戶分配的會(huì)話Token。本申請(qǐng)實(shí)施例提供的第三方應(yīng)用獲得用戶的會(huì)話Token的方法,需要用戶從開放平臺(tái)處獲得授權(quán)碼,用戶獲得授權(quán)碼之后,第三方應(yīng)用即可基于該授權(quán)碼向開放平臺(tái)申請(qǐng)用戶的會(huì)話Token。在保證安全性的前提下,使得第三方應(yīng)用能夠通過更加靈活的方式獲得授權(quán)碼進(jìn)而獲得用戶的會(huì)話Token。如圖2所示,包括如下步驟S201、第三方應(yīng)用接收用戶發(fā)起的訪問,確認(rèn)當(dāng)前未獲得用戶的會(huì)話Token時(shí),指示用戶獲得并提交授權(quán)碼;S202、開放平臺(tái)接收用戶獲取授權(quán)碼的請(qǐng)求,在用戶通過身份驗(yàn)證之后,向用戶提供授權(quán)碼;S203、第三方應(yīng)用接收用戶提交的從開放平臺(tái)處獲得的授權(quán)碼;S204、第三方應(yīng)用基于用戶提交的授權(quán)碼向開放平臺(tái)申請(qǐng)用戶的會(huì)話Token ;S205、開放平臺(tái)對(duì)該授權(quán)碼進(jìn)行驗(yàn)證,并在驗(yàn)證通過后向第三方應(yīng)用返回用戶的會(huì)話Token。至此,已經(jīng)實(shí)現(xiàn)了第三方應(yīng)用對(duì)用戶的會(huì)話Token的獲取,后續(xù)第三方應(yīng)用向開放平臺(tái)訪問用戶數(shù)據(jù)時(shí),與現(xiàn)有技術(shù)中一致,開放平臺(tái)驗(yàn)證為第三方應(yīng)用分配的固定Token 和為用戶分配的會(huì)話Token,并在驗(yàn)證通過后向第三方應(yīng)用返回用戶數(shù)據(jù),最終實(shí)現(xiàn)第三方應(yīng)用向用戶進(jìn)行頁(yè)面展示?;谏鲜龅谌綉?yīng)用獲得用戶的會(huì)話Token的實(shí)現(xiàn)流程,如圖3所示,本申請(qǐng)實(shí)施例同時(shí)提供了一種用戶訪問第三方應(yīng)用的實(shí)現(xiàn)流程,包括如下步驟步驟1、用戶發(fā)起對(duì)第三方應(yīng)用的訪問。步驟2、第三方應(yīng)用通過向用戶返回用于獲得并提交授權(quán)碼的第一頁(yè)面指示用戶獲得并提交授權(quán)碼,第一頁(yè)面中攜帶開放平臺(tái)中用于提供授權(quán)碼的第二頁(yè)面的地址信息;第二頁(yè)面的地址信息可以為該第二頁(yè)面的文本超鏈接或者圖片超鏈接,第二頁(yè)面的文本超鏈接包括第二頁(yè)面的URL (Uniform/Universal ResourceLocator,統(tǒng)一資源定位符)和相關(guān)的文本信息,第二頁(yè)面的圖片超鏈接包括第二頁(yè)面的URL和相關(guān)的圖片信息,其中,相關(guān)的文本信息或圖片信息用于向用戶說明通過點(diǎn)擊該超鏈接能夠獲得授權(quán)碼。步驟3、用戶通過第二頁(yè)面的地址信息訪問開放平臺(tái)中用于提供授權(quán)碼的第二頁(yè)步驟4、如果用戶未通過身份驗(yàn)證時(shí),開放平臺(tái)提示用戶登錄以驗(yàn)證用戶身份。步驟5、開放平臺(tái)在用戶通過身份驗(yàn)證之后,在第二頁(yè)面中向用戶展示當(dāng)前為該用戶分配的授權(quán)碼;具體實(shí)施中,授權(quán)碼一般由用戶ID、授權(quán)時(shí)間和開放平臺(tái)的簽名組成,將用戶標(biāo)識(shí)、授權(quán)時(shí)間和開放平臺(tái)的簽名等信息采用特定的編碼技術(shù)(例如Base64編碼、Basel6編碼等)進(jìn)行編碼之后在第二頁(yè)面中展示給用戶。為了保證安全可靠性,開放平臺(tái)為用戶分配的授權(quán)碼為一次性有效并且在設(shè)定的時(shí)間長(zhǎng)度后過期的信息,時(shí)間長(zhǎng)度一般設(shè)定為5分鐘、10分鐘等,還可以根據(jù)實(shí)際情況靈活調(diào)整。步驟6、用戶通過第一頁(yè)面向第三方應(yīng)用提交獲得的授權(quán)碼。步驟7、第三方應(yīng)用基于用戶提交的授權(quán)碼向開放平臺(tái)申請(qǐng)用戶的會(huì)話Token。步驟8、開放平臺(tái)驗(yàn)證該授權(quán)碼。步驟9、開放平臺(tái)對(duì)該授權(quán)碼驗(yàn)證通過后向第三方應(yīng)用返回用戶的會(huì)話Token。在步驟7 步驟9的具體實(shí)施中,第三方應(yīng)用將用戶通過第一頁(yè)面提交的授權(quán)
7碼發(fā)送給開放平臺(tái)中的應(yīng)用容器,開放平臺(tái)中的應(yīng)用容器對(duì)授權(quán)碼驗(yàn)證通過后,根據(jù)第三方應(yīng)用的注冊(cè)信息通過URL回調(diào)該第三方應(yīng)用,該URL中攜帶開放平臺(tái)為用戶分配的會(huì)話 Token;從而第三方應(yīng)用從URL中獲得用戶的會(huì)話Token。需要說明的是,為了實(shí)現(xiàn)對(duì)第三方應(yīng)用的回調(diào),URL中包括第三方應(yīng)用的回調(diào)地址。具體實(shí)施中,該URL除了攜帶用戶的會(huì)話 Token之外,一般還可攜帶第三方應(yīng)用的上下文參數(shù)、以及開放平臺(tái)為第三方應(yīng)用分配的固定 Token。步驟10、第三方應(yīng)用基于開放平臺(tái)為該第三方應(yīng)用分配的固定Token和為用戶分配的會(huì)話Token向開放平臺(tái)訪問用戶數(shù)據(jù);需要說明的是,固定Token—般是由第三方應(yīng)用的開發(fā)者向開放平臺(tái)申請(qǐng)、并由開放平臺(tái)的管理者批準(zhǔn)后分配給第三方應(yīng)用的,一般預(yù)先配置給第三方應(yīng)用。具體實(shí)施中, 如果URL中攜帶有開放平臺(tái)為第三方應(yīng)用分配的固定Token,則第三方應(yīng)用也可以直接從 URL中獲取該固定iToken。步驟11、開放平臺(tái)驗(yàn)證第三方應(yīng)用上報(bào)的固定Token和會(huì)話Token。步驟12、對(duì)固定Token和會(huì)話Token驗(yàn)證通過后,開放平臺(tái)向第三方應(yīng)用返回用戶數(shù)據(jù)。步驟13、第三方應(yīng)用根據(jù)開放平臺(tái)返回的用戶數(shù)據(jù)向用戶進(jìn)行頁(yè)面展示。下面,舉例說明第三方應(yīng)用獲得用戶的會(huì)話Token的實(shí)現(xiàn)流程,假設(shè)提供開放平臺(tái)的網(wǎng)站為“AAA網(wǎng)”,具體包括如下步驟步驟一、用戶發(fā)起對(duì)第三方應(yīng)用的訪問。第三方應(yīng)用接收到用戶發(fā)起的訪問時(shí),需要判斷當(dāng)前是否已經(jīng)獲得用戶的會(huì)話 Token。如果已經(jīng)獲得用戶的會(huì)話Token,則不再執(zhí)行后續(xù)各步驟,直接訪問用戶數(shù)據(jù)并進(jìn)行頁(yè)面展示。如果未獲得用戶的會(huì)話Token,則需要向用戶返回一個(gè)用于獲得并提交授權(quán)碼的頁(yè)面,使得用戶通過該頁(yè)面能夠獲得并提交授權(quán)碼,為了便于區(qū)分,本申請(qǐng)實(shí)施例中將該頁(yè)面稱為第一頁(yè)面。較佳的,為了方便用戶從開放平臺(tái)處獲得授權(quán)碼,開放平臺(tái)中包括另一用于提供授權(quán)碼的頁(yè)面,為了便于區(qū)分,本申請(qǐng)實(shí)施例中將該頁(yè)面稱為第二頁(yè)面。在此基礎(chǔ)上,第一頁(yè)面中可以攜帶開放平臺(tái)中用于提供授權(quán)碼的第二頁(yè)面的地址信息,該地址信息可以采用第二頁(yè)面的文本超鏈接或者圖片超鏈接的形式表示。第一頁(yè)面的示意圖如圖4所示,可以看出“獲取AAA網(wǎng)授權(quán)碼”的按鈕即為第二頁(yè)面的文本超鏈接,通過點(diǎn)擊該文本超鏈接能夠使用戶跳轉(zhuǎn)到如下地址http://auth. open. AAA, com/authorize/ ? appkey = {appkey}其中{appkey}表示該第三方應(yīng)用的AppKey (應(yīng)用密鑰),即固定Token。步驟二、用戶從開放平臺(tái)處獲得授權(quán)碼。MPVj fnji&tlh "http //auth. open. AAA. com/authorize/ ? appkey = {appkey} ” 時(shí),開放平臺(tái)向用戶返回第二頁(yè)面,具體實(shí)施中,如果用戶未登錄AAA網(wǎng),開放平臺(tái)先提示用戶登錄AAA網(wǎng),然后再向用戶返回第二頁(yè)面。第二頁(yè)面的示意圖如圖5所示,開放平臺(tái)在第二頁(yè)面中向用戶展示當(dāng)前為其分配的授權(quán)碼,從而使得用戶可以在第二頁(yè)面中獲得授權(quán)碼。具體實(shí)施中,除了頁(yè)面展示授權(quán)碼的方式之外,開放平臺(tái)還可以采用其它方式向用戶展示授權(quán)碼,例如短消息展示方式、語(yǔ)音展示方式等等。以短消息展示方式為例說明, 開放平臺(tái)可以在第一頁(yè)面中向用戶展示用于提供授權(quán)碼的服務(wù)號(hào)碼,如果用戶使用移動(dòng)終端撥打該服務(wù)號(hào)碼或者向該服務(wù)號(hào)碼發(fā)送短消息,則開放平臺(tái)采用無(wú)線方式將授權(quán)碼發(fā)送到用戶的移動(dòng)終端上。步驟三、用戶通過第一頁(yè)面向第三方應(yīng)用提交授權(quán)碼。用戶可以將步驟二中獲得的授權(quán)碼復(fù)制粘貼到第一頁(yè)面的相應(yīng)位置處即“請(qǐng)?zhí)钊?AAA網(wǎng)授權(quán)碼”位置處,并提交授權(quán)碼。步驟四、第三方應(yīng)用將用戶提交的授權(quán)碼發(fā)送到開放平臺(tái)中的應(yīng)用容器,具體提交到如下地址表示的應(yīng)用容器中http//container, open. AAA, com/container ? authcode = {authcode}其中,authcode表示步驟二中用戶獲得的授權(quán)碼。步驟五、第三方應(yīng)用獲得用戶的會(huì)話Token。開放平臺(tái)中的應(yīng)用容器會(huì)根據(jù)第三方應(yīng)用的注冊(cè)信息,通過URL回調(diào)該第三方應(yīng)用,假設(shè)第三方應(yīng)用的回調(diào)地址為http://app-callback/,則URL為http //app-cal lback/ ? top appkey = {top 已ppkey"}&top parameters = {top parameters} &top session = {top session} &top si Rn = {top si Rn}其中,{top_appkey}表示第三方應(yīng)用的AppKey (應(yīng)用密鑰),即固定Token ;{top_parameters}表示第三方應(yīng)用的上下文參數(shù);{top_session}表示用戶的 SessionKey (會(huì)話密鑰),即會(huì)話 iToken ;{top_sign}表不 AAA 網(wǎng)對(duì)上述{top_appkey}、{top_parameters}、{top_session} 等參數(shù)的簽名;第三方應(yīng)用從該URL中即可獲得用戶的會(huì)話Token。基于同一技術(shù)構(gòu)思,本申請(qǐng)實(shí)施例提供了一種第三方應(yīng)用獲得用戶的會(huì)話Token 的系統(tǒng),如圖6所示,包括第三方應(yīng)用601和開放平臺(tái)602,其中第三方應(yīng)用601,用于接收用戶發(fā)起的訪問,確認(rèn)當(dāng)前未獲得用戶的會(huì)話Token 時(shí),指示用戶獲得并提交授權(quán)碼;接收用戶提交的從開放平臺(tái)處獲得的授權(quán)碼,以及基于獲得的授權(quán)碼向開放平臺(tái)602申請(qǐng)用戶的會(huì)話Token,并獲得開放平臺(tái)602返回的用戶的會(huì)話 Token ;開放平臺(tái)602,用于向用戶提供授權(quán)碼,以及在第三方應(yīng)用601發(fā)起對(duì)用戶的會(huì)話 Token的申請(qǐng)時(shí),對(duì)該授權(quán)碼進(jìn)行驗(yàn)證并在驗(yàn)證通過后向第三方應(yīng)用601返回用戶的會(huì)話 Token0本申請(qǐng)實(shí)施例同時(shí)提供了一種第三方應(yīng)用獲得用戶的會(huì)話Token的裝置,該裝置一般設(shè)置在提供第三方應(yīng)用的實(shí)體設(shè)備中,如圖7所示,包括處理單元701,用于接收用戶發(fā)起的訪問,確認(rèn)當(dāng)前未獲得用戶的會(huì)話Token時(shí), 指示用戶獲得并提交授權(quán)碼;接收單元702,用于接收用戶提交的從開放平臺(tái)獲得的授權(quán)碼時(shí);獲取單元703,用于基于該授權(quán)碼向開放平臺(tái)申請(qǐng)用戶的會(huì)話Token,并獲得開放平臺(tái)對(duì)該授權(quán)碼驗(yàn)證通過后返回的用戶的會(huì)話Token。
較佳的,為了實(shí)現(xiàn)第三方應(yīng)用訪問用戶數(shù)據(jù)并進(jìn)行頁(yè)面展示,該裝置還可包括訪問單元,用于基于開放平臺(tái)為該第三方應(yīng)用分配的固定Token和為用戶分配的會(huì)話Token向開放平臺(tái)訪問用戶數(shù)據(jù),并接收開放平臺(tái)對(duì)固定Token和會(huì)話Token驗(yàn)證通過后返回的用戶數(shù)據(jù);展示單元,用于根據(jù)開放平臺(tái)返回的用戶數(shù)據(jù)向用戶進(jìn)行頁(yè)面展示。本申請(qǐng)實(shí)施例提供的第三方應(yīng)用獲得用戶的會(huì)話Token的方法、裝置及系統(tǒng),用戶首先從開放平臺(tái)獲得授權(quán)碼并提交給第三方應(yīng)用,第三方應(yīng)用基于授權(quán)碼向開放平臺(tái)申請(qǐng)用戶的會(huì)話Token,并最終獲得用戶的會(huì)話Token。本申請(qǐng)實(shí)施例將用戶登錄與第三方應(yīng)用的使用相分離,用戶通過登錄過程獲取到授權(quán)碼之后,在使用第三方應(yīng)用時(shí)直接提交授權(quán)碼,以一種比較簡(jiǎn)單和安全的基于授權(quán)碼的方式,實(shí)現(xiàn)開放平臺(tái)向第三方應(yīng)用的單向授權(quán)。第三方應(yīng)用無(wú)需通過HTTP跳轉(zhuǎn)的方式即可安全獲得用戶的會(huì)話Token,從而實(shí)現(xiàn)對(duì)各種使用場(chǎng)景的兼容,提高可定制化程度。在第三方應(yīng)用獲得用戶的會(huì)話Token的過程中,以授權(quán)碼代替會(huì)話Token在開放平臺(tái)與用戶之間以及用戶與第三方應(yīng)用之間進(jìn)行傳輸,即使該授權(quán)碼被劫持,劫持者也不能憑借該授權(quán)碼直接訪問用戶數(shù)據(jù),通過減少會(huì)話Token在系統(tǒng)中的傳輸次數(shù),從而有效地地增強(qiáng)了系統(tǒng)的安全性;同時(shí),通過設(shè)定授權(quán)碼為一次性有效并且在設(shè)定的時(shí)間長(zhǎng)度后過期,能夠進(jìn)一步避免授權(quán)碼被劫持之后所帶來(lái)的系統(tǒng)的安全性隱患。本領(lǐng)域的技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、裝置、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。本申請(qǐng)是參照根據(jù)本申請(qǐng)實(shí)施例的方法、裝置和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/ 或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。盡管已描述了本申請(qǐng)的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本申請(qǐng)范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本申請(qǐng)進(jìn)行各種改動(dòng)和變型而不脫離本申請(qǐng)的精神和范圍。這樣,倘若本申請(qǐng)的這些修改和變型屬于本申請(qǐng)權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請(qǐng)也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種第三方應(yīng)用獲得用戶的會(huì)話令牌的方法,其特征在于,包括第三方應(yīng)用接收用戶發(fā)起的訪問,確認(rèn)當(dāng)前未獲得用戶的會(huì)話令牌Token時(shí),指示用戶獲得并提交授權(quán)碼;第三方應(yīng)用接收用戶提交的從開放平臺(tái)處獲得的授權(quán)碼;以及基于所述授權(quán)碼向開放平臺(tái)申請(qǐng)用戶的會(huì)話Token,并獲得開放平臺(tái)對(duì)所述授權(quán)碼驗(yàn)證通過后返回的用戶的會(huì)話Token。
2.如權(quán)利要求1所述的方法,其特征在于,第三方應(yīng)用指示用戶獲得并提交授權(quán)碼,具體包括第三方應(yīng)用通過向用戶返回用于獲得并提交授權(quán)碼的第一頁(yè)面指示用戶獲得并提交授權(quán)碼。
3.如權(quán)利要求2所述的方法,其特征在于,所述第一頁(yè)面中攜帶開放平臺(tái)中用于提供授權(quán)碼的第二頁(yè)面的地址信息;以及開放平臺(tái)為用戶分配授權(quán)碼,具體包括開放平臺(tái)在用戶通過第二頁(yè)面的地址信息發(fā)起對(duì)所述第二頁(yè)面的訪問時(shí),對(duì)用戶進(jìn)行身份驗(yàn)證;并在用戶通過身份驗(yàn)證之后,在第二頁(yè)面中向用戶展示當(dāng)前為用戶分配的授權(quán)碼。
4.如權(quán)利要求1、2或3所述的方法,其特征在于,所述授權(quán)碼為一次性有效并且在設(shè)定的時(shí)間長(zhǎng)度后過期的信息。
5.如權(quán)利要求2所述的方法,其特征在于,所述基于授權(quán)碼向開放平臺(tái)申請(qǐng)用戶的會(huì)話Token,并獲得開放平臺(tái)對(duì)所述授權(quán)碼驗(yàn)證通過后返回的用戶的會(huì)話Token,具體包括第三方應(yīng)用將用戶通過第一頁(yè)面提交的授權(quán)碼發(fā)送給開放平臺(tái)中的應(yīng)用容器;以及接收開放平臺(tái)中的應(yīng)用容器對(duì)所述授權(quán)碼驗(yàn)證通過后,根據(jù)第三方應(yīng)用的注冊(cè)信息回調(diào)該第三方應(yīng)用時(shí)使用的統(tǒng)一資源定位符URL,所述URL中攜帶開放平臺(tái)為用戶分配的會(huì)話 Token ;第三方應(yīng)用從所述URL中獲得用戶的會(huì)話Token。
6.如權(quán)利要求5所述的方法,其特征在于,所述URL中還攜帶第三方應(yīng)用的上下文參數(shù)、以及開放平臺(tái)為第三方應(yīng)用分配的固定Token。
7.如權(quán)利要求1所述的方法,其特征在于,還包括第三方應(yīng)用基于開放平臺(tái)為該第三方應(yīng)用分配的固定Token和為用戶分配的會(huì)話 Token向開放平臺(tái)訪問用戶數(shù)據(jù);并接收開放平臺(tái)對(duì)所述固定Token和會(huì)話Token驗(yàn)證通過后返回的用戶數(shù)據(jù); 第三方應(yīng)用根據(jù)開放平臺(tái)返回的用戶數(shù)據(jù)向用戶進(jìn)行頁(yè)面展示。
8.—種第三方應(yīng)用獲得用戶的會(huì)話令牌的裝置,其特征在于,包括處理單元,用于接收用戶發(fā)起的訪問,確認(rèn)當(dāng)前未獲得用戶的會(huì)話令牌Token時(shí),指示用戶獲得并提交授權(quán)碼;接收單元,用于接收用戶提交的從開放平臺(tái)處獲得的授權(quán)碼; 獲取單元,用于基于所述授權(quán)碼向開放平臺(tái)申請(qǐng)用戶的會(huì)話Token,并獲得開放平臺(tái)對(duì)所述授權(quán)碼驗(yàn)證通過后返回的用戶的會(huì)話Token。
9.如權(quán)利要求8所述的裝置,其特征在于,還包括訪問單元,用于基于開放平臺(tái)為該第三方應(yīng)用分配的固定Token和為用戶分配的會(huì)話 Token向開放平臺(tái)訪問用戶數(shù)據(jù),并接收開放平臺(tái)對(duì)所述固定Token和會(huì)話Token驗(yàn)證通過后返回的用戶數(shù)據(jù);展示單元,用于根據(jù)開放平臺(tái)返回的用戶數(shù)據(jù)向用戶進(jìn)行頁(yè)面展示。
10.一種第三方應(yīng)用獲得用戶的會(huì)話令牌的方法,其特征在于,包括開放平臺(tái)接收用戶獲取授權(quán)碼的請(qǐng)求;開放平臺(tái)在用戶通過身份驗(yàn)證之后,向用戶提供授權(quán)碼,以使所述用戶將獲得的授權(quán)碼提交給第三方應(yīng)用;開放平臺(tái)接收第三方應(yīng)用基于所述授權(quán)碼對(duì)用戶的會(huì)話Token的申請(qǐng),對(duì)所述授權(quán)碼進(jìn)行驗(yàn)證,并在驗(yàn)證通過后向第三方應(yīng)用返回用戶的會(huì)話Token。
11.如權(quán)利要求10所述的方法,其特征在于,還包括開放平臺(tái)接收第三方應(yīng)用對(duì)用戶數(shù)據(jù)的訪問,所述訪問基于開放平臺(tái)為該第三方應(yīng)用分配的固定Token和為用戶分配的會(huì)話Token發(fā)起;開放平臺(tái)對(duì)所述固定Token和會(huì)話Token驗(yàn)證通過后向第三方應(yīng)用返回用戶數(shù)據(jù),使第三方應(yīng)用根據(jù)所述用戶數(shù)據(jù)向用戶進(jìn)行頁(yè)面展示。
12.—種第三方應(yīng)用獲得用戶的會(huì)話令牌的系統(tǒng),其特征在于,包括第三方應(yīng)用和開放平臺(tái),其中所述第三方應(yīng)用,用于接收用戶發(fā)起的訪問,確認(rèn)當(dāng)前未獲得用戶的會(huì)話令牌Token 時(shí),指示用戶獲得并提交授權(quán)碼;接收用戶提交的從開放平臺(tái)處獲得的授權(quán)碼,以及基于所述授權(quán)碼向開放平臺(tái)申請(qǐng)用戶的會(huì)話Token,并獲得開放平臺(tái)返回的用戶的會(huì)話Token ;所述開放平臺(tái),用于向用戶提供授權(quán)碼,以及在第三方應(yīng)用發(fā)起對(duì)用戶的會(huì)話Token 的申請(qǐng)時(shí),對(duì)所述授權(quán)碼進(jìn)行驗(yàn)證并在驗(yàn)證通過后向第三方應(yīng)用返回用戶的會(huì)話Token。
全文摘要
本申請(qǐng)公開了一種第三方應(yīng)用獲得用戶的會(huì)話令牌的方法、裝置及系統(tǒng),用以解決現(xiàn)有基于HTTP跳轉(zhuǎn)的方式存在的使用場(chǎng)景單一、可定制化程度低,以及系統(tǒng)的安全性較低的問題。第三方應(yīng)用獲得用戶的會(huì)話令牌的方法,包括第三方應(yīng)用接收用戶發(fā)起的訪問,確認(rèn)當(dāng)前未獲得用戶的會(huì)話Token時(shí),指示用戶獲得并提交授權(quán)碼;第三方應(yīng)用接收用戶提交的從開放平臺(tái)處獲得的授權(quán)碼;以及基于所述授權(quán)碼向開放平臺(tái)申請(qǐng)用戶的會(huì)話Token,并獲得開放平臺(tái)對(duì)所述授權(quán)碼驗(yàn)證通過后返回的用戶的會(huì)話Token。通過本申請(qǐng),第三方應(yīng)用無(wú)需通過HTTP跳轉(zhuǎn)的方式即可安全獲得用戶的會(huì)話Token,從而實(shí)現(xiàn)對(duì)各種使用場(chǎng)景的兼容,提高可定制化程度。
文檔編號(hào)H04L29/06GK102238007SQ201010153130
公開日2011年11月9日 申請(qǐng)日期2010年4月20日 優(yōu)先權(quán)日2010年4月20日
發(fā)明者林濤 申請(qǐng)人:阿里巴巴集團(tuán)控股有限公司