app提交登录信息给服务端
服务端验证通过后,随机生成一个唯一的字符串(也就是token),保存的数据库并返回给app
这个token可以包含用户信息,这样可以直接确定用户,减少服务端压力
之后app每次请求服务端的时候都加上这个token
服务端验证是否存在这个token,是否过期等
验证通过后获取用户信息(如果token上面有用户信息就很方便了,没有的话就得去数据库验证),并在服务端建立一个会话(session),方便短期内用户操作
一定要建立数据库保存token吗?
@sss2775529: 这个也可以不建立,你在token中加入用户名,密码(这个不能明文),登录时间,随机字符串,和其他信息(比如用户类型等)
然后把这些信息通过加密算法加密(你能够自己解密的,可以定期更换秘钥来增加安全性,秘钥可以在强制用户登录的时候更换)
这个token可以在服务端直接验证的,不用保存到数据库,但是会被劫持用户信息
@刘宏玺: 做完这个token的登录验证工作量大不大,我第一次弄这东西 ,开发经验也很少,不是很懂。
@sss2775529: 如果使用不用数据库的方案,工作量很小的
使用数据库的工作量也没大多少
关键是你们是不是在已经开发好的系统上面加入token验证的机制
预留好token的话开发很快的
@刘宏玺 本来是用的验证码正确就登录 也没用到什么机制,现在想用token 项目其他部分都完成的差不多 ,如果你那有demo 可以给我借鉴一下嘛
@sss2775529: 那也算有一点了,你在登陆的地方验证通过后把token写入cookie,然后在验证是否登录的地方改成token验证
@刘宏玺: APP端 登录哦
@sss2775529: APP端 登录难道不是在服务端验证?
@刘宏玺: 我也不是很懂 ,我以为APP端登录 就不能将token存入cooie中
@sss2775529: 那还不是可以使用js来操作
@刘宏玺: 恩 谢谢了
@sss2775529: 不一定要保存在数据库,也可以直接保存在内存中。因为token都是临时的,有一定的时效。
建张登录表,里面存放用户信息及token, 登录,验证用户名+密码或是手机号+验证码,后端生成token存入登录表
所有的接口都带上token参数,访问接口前先验证token是否有效
可以使用cas单点登录获取tiket,之后httpclient访问接口将它作为参数传过去就好,移动端是没有cookie的