1.什么是OAuth授權(quán)
簡單的說就是網(wǎng)頁授權(quán), 允許用戶提供一個令牌給第三方網(wǎng)站怯晕,一個令牌對應(yīng)一個特定的第三方網(wǎng)站蝉绷,同時該令牌只能在特定的時間內(nèi)訪問特定的資源
2.OAuth授權(quán)的步驟
以新浪開發(fā)平臺的API為例:
* 獲取請求的權(quán)限
* 進入新浪開放平臺
* 登錄新浪微博帳號
* 我們作為第三方客戶端, 想要拿到接口權(quán)限, 必須申請
* 新浪開放平臺-微連接- 移動應(yīng)用-創(chuàng)建應(yīng)用之后, 可以獲取第三方應(yīng)用的標(biāo)識 key, Screct
* 在高級信息里面, OAuth2.0的授權(quán)設(shè)置, 填寫授權(quán)回調(diào)頁 ( 當(dāng)用戶授權(quán)你的應(yīng)用后, 開放平臺會回調(diào)你填寫的這個地址www.baidu.com, 如果綁定了域名, 那么回調(diào)的地址都有效? ) , 和 取消授權(quán)回調(diào)頁? (? 當(dāng)用戶在我的應(yīng)用管理頁取消對你的應(yīng)用授權(quán)時 , 開放平臺會回調(diào)到這個地址www.baidu.com? )
* 新浪開放平臺-文檔-微博API - OAuth2.0接口 - 請求授權(quán), 獲取授權(quán) - 點擊請求授權(quán)查看 - Oauth2/authorize是接口名稱 , URL , 請求方式, 最重要的是 請求參數(shù)
* 請求參數(shù)中,? 申請應(yīng)用時分配的AppKey, client_id
* 請求參數(shù)中, 重定向的授權(quán)回調(diào)地址, redirect_url
* 返回數(shù)據(jù)中,? 授權(quán)碼code , 接口獲取授權(quán)后的access_token
* 返回數(shù)據(jù)中,? 如果回傳參數(shù), status
支持get請求, 可以直接在網(wǎng)頁中進行演示, 輸入 URL+接口名稱+key+重定向地址,? 就會直接跳到微博的登錄界面 , 然后用戶登錄授權(quán)后, 就可以看到頁面的url變成? 重定向的地址+授權(quán)碼code code=21243243..
,? 表示使用哪些字段可以請求當(dāng)對應(yīng)頁面
* 請求web頁面, 會去加載這樣的webView, 該web頁面 就是讓用戶去輸入自己的用戶名和密碼,? 然后對應(yīng)的 URL 就會發(fā)生跳轉(zhuǎn),? 該URL里面包含授權(quán)碼code
3.OAuth授權(quán)中令牌
token的中文名 令牌 , 有一定的時效性, 過期了就需要重新登錄
用授權(quán)碼code, 去交換token , token主要用于移動端,? 因為早期PC 和 地洞并不普及時, 查資料的設(shè)備很可能不是私有的, 如果使用了token,記住了, 那么信息就存在太大的安全隱患
4.為什么越來越多的應(yīng)用喜歡使用OAuth授權(quán) 和 SSO授權(quán)
越來越多的第三方應(yīng)用? 喜歡使用微信, 微博qq等進行登錄, 因為這樣可以方便用戶操作,提高用戶留存率,? 也可以方便的獲取用戶信息, 同時也提高了產(chǎn)品的曝光率
只要登錄, 那么就可以通過token 獲取跟你相關(guān)的信息都可以獲取到, 你關(guān)注的朋友, 你發(fā)布的微博
5. SSO與OAuth的對比
SSO授權(quán), SSO英文全稱Single Sign On寂呛,單點登錄其馏。SSO是在多個應(yīng)用系統(tǒng)中骗奖,用戶只需要登錄一次就可以訪問所有相互信任的應(yīng)用系統(tǒng)剧蹂。它包括可以將這次主要的登錄映射到其他應(yīng)用中用于同一個用戶的登錄的機制. 使用SDK授權(quán) , 會跳轉(zhuǎn)到例如新浪微博的官方應(yīng)用
SSO授權(quán)的劣勢, 如果用戶沒有安裝該應(yīng)用, 就無法進行登錄