84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
如何保持app的登录状态并且控制访问呢?新手很疑惑,我知道可以用key chain 来保存用户名和密码,每次调用出来登录。登录之后可以做一个token,每次需要访问数据库的时候,验证token。
问题是,我看有些教程制作token的时候,将用户名,密码,还有一大堆信息都使用进去了,这样导致token的长度很长。并且此时token已经包含了用户名和密码这种关键信息,再非https传输的情况下,和每次都都要验证用户名+密码的方式有什么区别呢?
小伙看你根骨奇佳,潜力无限,来学PHP伐。
在非https的情況,token通常是把使用者的資訊加密後得出來的一串碼。例如簡單的:token = md5(username+password),那麼我們在和服務端通訊的時候,就會把token和username一起傳給服務端,服務端拿到username以後,從資料庫查詢到對應的password,然後再md5(username+password),與客戶端傳過來的password進行比較。 token通常是登入的時候,服務端回傳給客戶端的,客戶端保留token,也就意味著保持了app的登入狀態。
無非就是給每個使用者一個唯一標識,你說的
將使用者名,密碼,還有一大堆資訊都使用進去了,這樣導致 token 的長度很長。而此時 token 已經包含了使用者名稱和密碼這種關鍵資訊
這個問題完全不用考慮。因為你完全可以用 userId+時間戳後 base64 混淆後的字串當作你的 token。這樣 token 既不會很長,也不怕中間傳輸時被攔截。
在非https的情況,token通常是把使用者的資訊加密後得出來的一串碼。例如簡單的:token = md5(username+password),那麼我們在和服務端通訊的時候,就會把token和username一起傳給服務端,服務端拿到username以後,從資料庫查詢到對應的password,然後再md5(username+password),與客戶端傳過來的password進行比較。 token通常是登入的時候,服務端回傳給客戶端的,客戶端保留token,也就意味著保持了app的登入狀態。
無非就是給每個使用者一個唯一標識,你說的
這個問題完全不用考慮。因為你完全可以用 userId+時間戳後 base64 混淆後的字串當作你的 token。這樣 token 既不會很長,也不怕中間傳輸時被攔截。