APP与服务端保持登录状态

由于APP向服务端发起请求属于跨域访问,每次访问在服务端都会产生一个新的session,因此APP客户端与web端不同,无法通过session来保持登录状态。

为了维护app用户的登录状态,我们可以利用token来实现。

客户端输入账号密码,发起登录请求,服务端在登录接口验证通过后,给客户端返回一个任意字符串,既token,生成算法可随机,token必须与用户的账户关联,如用userid和token形成键值对,保存在内存中(redis)。客户端拿到这个token后,就相当于被服务端承认正常登录成功了,在之后所有需要验证的请求中,带上token,服务端验证token是否存在,是否有效。

出于安全考虑,token在每次登录时重新生成,并可以设置有效期,每次有效操作后更新token的时间戳,保证token有效期往后延续。

为了避免token被截获,伪造非法请求,在每次请求时,可以用userid+token+时间戳+密钥+请求参数,进行签名,服务端验证token,同时验证签名,以保证请求的安全性。

相关推荐