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

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

標籤(空格分隔): 未分類spring


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

如今不少網站均可以用第三方的帳號登錄,好比,如今我要登陸淘寶買東西,而若是我沒有淘寶的帳號,我也能夠用微博的帳號登陸,這個微博帳號就是第三方帳號了。springboot

OpenID強調 驗證 authentication,而OAuth強調 受權 authorization。 驗證就是說「我」是否是(微博用戶),而受權是說「淘寶」可不能夠,而可不能夠的前提則是「我」是否是。服務器

過程大概是這樣:
我點開微博登陸的連接,淘寶就跳到微博登陸頁面,問我你是否是那個微博用戶,是的話你用你的帳號密碼去登陸,你先去給微博驗明正身,成功的話再來找我
好啦,我屁顛屁顛輸入帳號跟密碼,若是能夠登陸說明我這個身份是對的,經過了微博的驗證後微博就告訴淘寶說,沒錯沒錯,我家裏確實有麼這個傢伙app

上面這些都是OpenID的責任,並且OpenID也只作這件事,就是前面說的是否是網站

而後呢,淘寶就說好好,有你微博驗證我放心,因而就讓我經過了
等等,這時淘寶只知道微博他們家有我存在,可是並不知道我在微博家裏叫什麼名,作過什麼事,其實淘寶也不該該知道,對吧,要是知道我在微博家總是處處舉報別人賣假貨坑顧客什麼的,那我讓你進我大淘寶豈不是會壞了個人大事,你丫是來搗亂的吧(至於淘寶爲何會這麼想,哼哼~大家懂的)
因此,淘寶一般就會作一件事,什麼事呢?這時就輪到OAuth出場了,淘寶在把我交給微博驗明正身的時候其實還「忽悠」了我,明明只是驗個身份,卻問我要不要把我在微博家叫什麼名作過什麼事也告訴它(就是一般看到的幾個打勾選項:容許訪問個人暱稱/容許訪問個人頭像等等),淘寶說這樣就能夠爲我提供更多的服務,什麼服務呢?模凌兩可,我呢看到有更多服務也沒多想就打勾了,不要白不要是吧。對象

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

其實如今不少的第三方登陸都是這樣,驗證身份的同時順便把你在其餘地方的資料拿到手,名曰資料共享,其實共享一些非敏感信息倒也無妨,還能夠免去了每去一個新網站都要填寫一大堆重複資料的問題。可是我要吐槽的是,不少網站明明讓我用第三方帳號登陸,你都OAuth了爲毛登陸後還要再填一遍郵箱暱稱之類的東西?早知道這樣我還不如直接在你這邊註冊就行了,在我看來這是用戶體驗的問題了。it

OAuth2.0認證和受權機制講解io

淺談OAuth 和 OpenID 相關技術微博

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

首先登錄Github帳號,進入【Settings】->選擇【Developer settings】->選擇【Register a new application】,這裏咱們能夠看到當前帳戶所擁有的第三方應用。

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

這樣,咱們就擁有了第三方應用的身份,能夠喝Github交互進行OAuth2的受權了。

相關文章
相關標籤/搜索