基於SpringBoot的通用化的第三方登陸實現


基於SpringBoot的通用化的第三方登陸實現

標簽(空格分隔): 未分類


通俗的例子解釋OAuth和OpenID的區別

現在很多網站都可以用第三方的賬號登陸,比如,現在我要登錄淘寶買東西,而如果我沒有淘寶的賬號,我也可以用微博的賬號登錄,這個微博賬號就是第三方賬號了。

OpenID強調 驗證 authentication,而OAuth強調 授權 authorization。 驗證就是說“我”是不是(微博用戶),而授權是說“淘寶”可不可以,而可不可以的前提則是“我”是不是。

過程大概是這樣:
我點開微博登錄的鏈接,淘寶就跳到微博登錄頁面,問我你是不是那個微博用戶,是的話你用你的賬號密碼去登錄,你先去給微博驗明正身,成功的話再來找我
好啦,我屁顛屁顛輸入賬號跟密碼,如果可以登錄說明我這個身份是對的,通過了微博的驗證后微博就告訴淘寶說,沒錯沒錯,我家里確實有么這個家伙

上面這些都是OpenID的責任,而且OpenID也只做這件事,就是前面說的是不是

然后呢,淘寶就說好好,有你微博驗證我放心,於是就讓我通過了
等等,這時淘寶只知道微博他們家有我存在,但是並不知道我在微博家里叫什么名,做過什么事,其實淘寶也不應該知道,對吧,要是知道我在微博家老是到處舉報別人賣假貨坑顧客什么的,那我讓你進我大淘寶豈不是會壞了我的大事,你丫是來搗亂的吧(至於淘寶為什么會這么想,哼哼~你們懂的)
所以,淘寶通常就會做一件事,什么事呢?這時就輪到OAuth出場了,淘寶在把我交給微博驗明正身的時候其實還“忽悠”了我,明明只是驗個身份,卻問我要不要把我在微博家叫什么名做過什么事也告訴它(就是通常看到的幾個打勾選項:允許訪問我的昵稱/允許訪問我的頭像等等),淘寶說這樣就可以為我提供更多的服務,什么服務呢?模凌兩可,我呢看到有更多服務也沒多想就打勾了,不要白不要是吧。

這里就用到了OAuth,就是前面說的可不可以,這個要是真發現我在微博家干過的事,會不會把我加入重點監控對象,那就要看淘寶有多少節操了

其實現在很多的第三方登錄都是這樣,驗證身份的同時順便把你在其他地方的資料拿到手,名曰資料共享,其實共享一些非敏感信息倒也無妨,還可以免去了每去一個新網站都要填寫一大堆重復資料的問題。但是我要吐槽的是,很多網站明明讓我用第三方賬號登錄,你都OAuth了為毛登錄后還要再填一遍郵箱昵稱之類的東西?早知道這樣我還不如直接在你這邊注冊就好了,在我看來這是用戶體驗的問題了。

OAuth2.0認證和授權機制講解

淺談OAuth 和 OpenID 相關技術

基於Spring的Github第三方登錄--通用化的第三方登陸實現

首先登陸Github賬號,進入【Settings】->選擇【Developer settings】->選擇【Register a new application】,這里我們可以看到當前賬戶所擁有的第三方應用。

注意右上角的Client Id和Client Secret,這兩個信息是用來標識第三方應用身份的相關信息,特別注意Client Secret,Client Secret是用來和授權服務器交換驗證憑證(Access Token)的,千萬不能暴露出去。

這樣,我們就擁有了第三方應用的身份,可以喝Github交互進行OAuth2的授權了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM