Rumah > Soal Jawab > teks badan
如何保持app的登录状态并且控制访问呢?
新手很疑惑,我知道可以用key chain 来保存用户名和密码,每次调用出来登录。
登录之后可以做一个token,每次需要访问数据库的时候,验证token。
问题是,我看有些教程制作token的时候,将用户名,密码,还有一大堆信息都使用进去了,这样导致token的长度很长。并且此时token已经包含了用户名和密码这种关键信息,再非https传输的情况下,和每次都都要验证用户名+密码的方式有什么区别呢?
伊谢尔伦2017-04-17 17:32:16
在非https的情况,token通常是把用户的信息进行加密后得出来的一串码。例如简单的:token = md5(username+password),那么我们在和服务端通信的时候,就会把token和username一起传给服务端,服务端拿到username以后,从数据库查询到对应的password,然后再md5(username+password),与客户端传过来的password进行比较。token通常是登录的时候,服务端返回给客户端的,客户端保留token,也就意味着保持了app的登录状态。
伊谢尔伦2017-04-17 17:32:16
无非就是给每个用户分配一个唯一标识,你说的
将用户名,密码,还有一大堆信息都使用进去了,这样导致 token 的长度很长。并且此时 token 已经包含了用户名和密码这种关键信息
这个问题完全不用考虑。因为你完全可以用 userId+时间戳后 base64 混淆后的字符串作为你的 token。这样 token 既不会很长,也不怕中间传输时被拦截。