以下是【千手觀音】分享的內(nèi)容全文:
PHP第三方登錄設(shè)計(jì)教程1. oAuth2.0原理
網(wǎng)站為了方便用戶快速的登錄系統(tǒng),都會(huì)提供使用知名的第三方平臺(tái)賬號(hào)進(jìn)行快速登錄的功能,第三方登錄都是基于oAuth2.0標(biāo)準(zhǔn)來實(shí)現(xiàn)的。下面詳細(xì)分析【基于賬號(hào)密碼授權(quán)】和【基于oAuth2.0標(biāo)準(zhǔn)授權(quán)】的原理和oAuth2.0授權(quán)的優(yōu)點(diǎn)。
1.1 賬號(hào)密碼授權(quán)方式
用戶到網(wǎng)站發(fā)起使用其他平臺(tái)賬號(hào)登錄的指令,第三方平臺(tái)網(wǎng)站就向用戶索取賬號(hào)和密碼,用戶將賬號(hào)和密碼提供第三方網(wǎng)站之后,網(wǎng)站使用用戶提供的賬號(hào)和密碼去登錄服務(wù)商,取回用戶的信息。這就是使用賬號(hào)和密碼授權(quán)登錄的流程。
存在的問題:
一、服務(wù)商的賬號(hào)和密碼都泄漏給了第三方平臺(tái),導(dǎo)致安全性問題;
分析:假設(shè)服務(wù)商是微信,沒有人會(huì)愿意把微信賬號(hào)和密碼告訴當(dāng)前訪問的網(wǎng)站,一旦當(dāng)前網(wǎng)站發(fā)生信息泄漏,微信賬號(hào)和密碼都會(huì)丟失;
二、用戶要收回授權(quán),只能通過修改密碼來實(shí)現(xiàn),若是有多個(gè)第三方網(wǎng)站都是用
同一個(gè)服務(wù)商授權(quán)登錄,那么所有第三方網(wǎng)站的授權(quán)都被收回來了;
分析:假設(shè)我們想要收回授權(quán)給當(dāng)前網(wǎng)站的賬號(hào)和密碼,又不可能讓第三方主動(dòng)放棄已給
授權(quán),那么只有用戶自己修改微信密碼,但是有多個(gè)第三方網(wǎng)站都被微信服務(wù)商授權(quán)了登錄,修改密碼的同時(shí),其它網(wǎng)站的授權(quán)也都失效了;
三、很難實(shí)現(xiàn)給不同的網(wǎng)站,授予不同的權(quán)限;
1.2 oAuth原理和授權(quán)流程
為了解決上述傳統(tǒng)的賬號(hào)密碼授權(quán)方式存在的問題,oAuth項(xiàng)目組制定了oAuth標(biāo)準(zhǔn),目的在于為API訪問授權(quán)提供一個(gè)開放的標(biāo)準(zhǔn);oAuth是針對(duì)訪問授權(quán)的一個(gè)開放標(biāo)準(zhǔn),與以往的授權(quán)方式不同之處是oAuth的授權(quán)不會(huì)使第三方觸及到用戶的帳號(hào)信息(如用戶名與密碼),即第三方無需使用用戶的用戶名與密碼就可以申請(qǐng)獲得該用戶資源的授權(quán),因此oAuth是安全的。oAuth是Open Authorization的簡(jiǎn)寫。服務(wù)商和第三方平臺(tái)依據(jù)oAuth標(biāo)準(zhǔn)來編碼,服務(wù)商可以實(shí)現(xiàn)一個(gè)安全的授權(quán)機(jī)制,第三方應(yīng)用調(diào)用服務(wù)商資源也有了統(tǒng)一性,服務(wù)商和第三方依據(jù)統(tǒng)一的標(biāo)準(zhǔn)來實(shí)現(xiàn)自己的功能。
用戶向第三方網(wǎng)站發(fā)起請(qǐng)求,請(qǐng)求使用其它平臺(tái)授權(quán)登錄,這個(gè)時(shí)候第三網(wǎng)站并不是直接的要求用戶提供其它平臺(tái)的賬號(hào)和密碼,而是引導(dǎo)用戶瀏覽器跳轉(zhuǎn)到服務(wù)商的授權(quán)登錄頁面,用戶在服務(wù)商的網(wǎng)站頁面進(jìn)行登錄完成授權(quán)。所以解決了剛才的第一個(gè)問題,用戶不需要給第三方用戶透露賬號(hào)和密碼。登錄授權(quán)之后,服務(wù)商就會(huì)生成一個(gè)一次性的用來訪問資源的訪問碼,我們叫做令牌,這個(gè)令牌包含了用戶、第三方網(wǎng)站、資源權(quán)限的信息。生成這個(gè)令牌之后,服務(wù)商又引導(dǎo)用戶瀏覽器攜帶這個(gè)令牌跳回第三方網(wǎng)站的頁面,網(wǎng)站接收這個(gè)令牌后,第三方網(wǎng)站就可以攜帶令牌作為憑證訪問服務(wù)商上面有權(quán)限訪問的資源。在這個(gè)過程中,用戶沒有泄漏賬號(hào)和密碼給第三方,成功授權(quán)登錄,并且限制了第三方訪問的服務(wù)資源的權(quán)限。
1-1課程介紹
1-2OAuth2.0協(xié)議
1-3OAuth工作原理
1-4關(guān)于OAuth版本
1-5OAuth應(yīng)用場(chǎng)景
2-1三個(gè)重要步驟解析
2-2步驟一請(qǐng)求OAuth登陸頁
2-3步驟二用戶使用QQ號(hào)登錄并授權(quán)
2-4步驟三返回登錄結(jié)果
2-5關(guān)于AssessToken
2-6AssessToken和RefreshToken數(shù)據(jù)傳輸原理
2-7AccessToken和RefreshToken生命周期
2-8小結(jié)
1.軟件源碼推廣展示:目的展示軟件相關(guān)功能,接收技術(shù)學(xué)習(xí)者測(cè)試、測(cè)評(píng);
2.教程課程信息展示:展示課程信息,傳授課程各階段內(nèi)容;
3.設(shè)計(jì)素材圖片展示:展示素材設(shè)計(jì)理念、思維方式、傳播設(shè)計(jì)理念;
4.福利優(yōu)惠信息展示:分享各類最新的福利信息,各種優(yōu)惠信息展示;
以上分享目的僅供學(xué)習(xí)、參考使用,請(qǐng)勿用于其他用途,如果想商業(yè)使用或者代理,請(qǐng)自行聯(lián)系版權(quán)方獲取授權(quán)。任何未獲取授權(quán)的商業(yè)使用與本站無關(guān),請(qǐng)自行承擔(dān)相應(yīng)責(zé)任。
本站不存儲(chǔ)任何資源文件,敬請(qǐng)周知!
如果您認(rèn)為本頁信息內(nèi)容侵犯了您的相關(guān)權(quán)益(包含但不限于:著作權(quán)、首發(fā)權(quán)、隱私權(quán)等權(quán)利),或者您認(rèn)為自己是此信息的權(quán)利人但是此信息不是自己發(fā)布的,可以直接版權(quán)舉報(bào)投訴,我們會(huì)根據(jù)網(wǎng)站注冊(cè)協(xié)議、資源分享協(xié)議等協(xié)議處理,以保護(hù)您的合法權(quán)益。
本網(wǎng)站采用 BY-NC-SA 協(xié)議進(jìn)行授權(quán) 轉(zhuǎn)載請(qǐng)注明原文鏈接:PHP第三方登錄設(shè)計(jì)教程

侵權(quán)舉報(bào)/版權(quán)申訴



