Senparc之OAuth原理

今天學習了網易雲課堂的 盛派的微信開發課程之OAuth微信網頁受權:OAuth原理,邊聽邊來波筆記;api

 

一、什麼是OAuth?安全

 

OAuth 你的接口提供給別人使用,你須要提供Oauth,可讓被人使用,也可使用別人的OAuth
OAuth2.0安全性更高服務器

 

OAuth2.0的流程微信

 

開發者服務器或APP  <---------------------------------------------------------->微信服務器微信開發

一、A:客戶端(應用服務器)向服務器(對應微信服務器)發送驗證請求,請求中通常會攜帶這些參數:學習

ID:標識,例如微信公衆號的APPId,加密

驗證後跳轉到的URL(redirectUrl)code

狀態參數(可選)blog

受權做用域(可選)接口

響應類型(可選)

二、B:服務器端返回一個grant受權標識(微信默認狀況下稱之爲Code),就像一個一次性的臨時字符串密鑰,若是A中提供了

redirectUrl,這裏服務器會作一次跳轉,帶上grant和狀態參數,訪問redirectUtl.

三、C:客戶端的redirectUrl對應頁面,憑藉grant再次發起請求,此次請求中一般會攜帶一些敏感信息:

ID:標識 (微信公衆號的APPId)

密碼

grant字符串(code)

grant類型(可選、微信中默認爲code)

四、D:服務器驗證ID標識、密碼、grant都正確後,返回AccessToken(注意:這裏的AccessToken和以前通用接口、高級接口介紹的AccessToken沒有關係,不能交叉使用)

五、E:客戶端憑藉AccessToken請求一系列的API,在此過程當中不會攜帶AppId,Secret,grant等敏感信息。

六、F:服務器返回請求結果
第一步是用戶直接操做的,最後一步返回用戶的基本信息 

微信中兩種受權方式:


一、顯示受權 snsapi_userinfo 特色:有受權,不管用戶有無關注公衆號,都能獲得詳細的信息 如 openId,暱稱、頭像 性別 、所在地區等等
二、靜默受權:  snsapi_userinfo 特色:若是用戶沒有關注,只能得到OpenId

混合使用:先用靜默受權 獲取openId,若是尚未關注,就顯示的受權,


增強帳號和密碼的安全性:

 

一、客戶端將密碼加密後傳輸到服務器

二、服務器端使用」加鹽「的方式進行混淆加密,嚴謹明文存儲密碼

三、儘可能不要使用Cookie存儲用戶名、尤爲是OpenId,更不要在Url中傳輸OpenId

四、你必須知道:Session常規狀況下也是依賴Cookie才能起做用的,因此不要覺得Session和客戶端安全無關!

五、Https不能解決全部安全問題!

相關文章
相關標籤/搜索