1. 程式人生 > >App後臺開發運維和架構實踐學習總結(6)——App客戶端與後臺互動方式總結

App後臺開發運維和架構實踐學習總結(6)——App客戶端與後臺互動方式總結

1、HTTP簡單基本認證方式

這個是早期互動用得比較多的一種方式,主要是使用使用者名稱和密碼來互動,由於在每次的互動中,使用者名稱和密碼都會暴露給第三方,那麼這麼做是不可取的,風險十分大,所以這種認證方式並沒有流傳開來

2、OAuth(OAuth2)

這個就是開放平臺的概念,就像你登入第三方網站或者app的時候可以使用qq或者微信登入,那麼登入後第三方可以獲取你的個人資訊,這就是開放授權的概念,理念是通過token來實現。

這個token可以由你來限制時間,第三方獲取你指定的資訊,從而達到了一個安全認證的效果。

3、cookie

這是比較常用的一種方式,很多小型網站都在使用,使用者在登陸後,生成的使用者資訊存入cookie,這個cookie要和服務端的session來匹配,一般控制cookie在瀏覽器關閉的時候失效。

4、token機制

使用者登陸後的資訊以token存入session或者redis的同時會生成一個cookie,來儲存到瀏覽器,如果是手機端則把這個token存入其他媒介,存活時間與session(這裡的session指的是單一應用的session或者分散式session,都可以)一致,如果使用者在其他客戶端登入後需要覆蓋token,從而可以做到唯一登入,需要注意的是token在互動中存入headers中,並且在服務端攔截器中需要對這個token進行校驗。這種方式可以跨域,而cookie不能跨域,所以只能適用於一些小網站。

5、json web token(JWT)

JWT的機制和之前說的也是差不多,只不過封裝了很多,並且安全性得到了一定的提高。

如圖,使用者發起restful登入請求,服務端會建立一個加密的JWT資訊,這個會作為token返回給客戶端,在後續的互動請求中JWT資訊放入headers,服務端解密後並且校驗使用者資訊,成功則驗證通過;解密失敗說明token無效或者已過期。

這幾種認證方式中JWT是最安全的,並且可以防範一定的攻擊。所以比較推薦。