1. 程式人生 > >客戶端登入新增token機制

客戶端登入新增token機制

       手機APP登入的時候傳送使用者名稱和密碼到伺服器,伺服器驗證使用者名稱和密碼,
如果成功,以某種方式比如隨機生成32位的字串作為token,儲存到伺服器中(建立Table),
並返回token到客戶端,以後客戶端再請求時,驗證該token就可以了。將客戶端儲存的token與伺服器儲存的token比對,然後伺服器端驗證token,成功返回所需要的結果,失敗返回錯誤資訊,讓其重新登入。

其中伺服器上token設定一個有效期,每次客戶端請求的時候都驗證token和有效期。

這裡,儲存在客戶端的token存在哪裡?

本人分析了android儲存資料的五種方式,

有兩種可選:

1、使用sharedPreferences儲存token。sharedPreferences可用於儲存少量資料,應用程式的各種配置資訊以及口令密碼等,而且我們的使用者名稱也儲存在這裡(本專案使用)。

2、sqlite。需要建立資料庫、表等。

最終選擇了方法1。

就本專案來說,在登入的相關部分加上

String jsonDatas =  msg.obj.toString().trim();	
Gson gson = USAUtil.getGson();
TokenUtils accesstoken = gson.fromJson(jsonDatas,TokenUtils.class );
用於解析token,其中TokenUtils是set、get方法的工具類。

然後再儲存token到sharedPreferences就可以了,

saveAccessToken(XXX.this, accesstoken.getToken());
具體的實現就不多說了。
如何有什麼不合理的地方,還請指出!