首页 新闻 搜索 专区 学院

APP端用token做登陆验证的原理

0
悬赏园豆:100 [已解决问题] 解决于 2016-03-31 14:55

APP端用token做登陆验证的原理,如果有demo的朋友可以给个demo看看 谢谢了!

sss2775529的主页 sss2775529 | 初学一级 | 园豆:14
提问于:2016-03-31 11:54
< >
分享
最佳答案
0

app提交登录信息给服务端

服务端验证通过后,随机生成一个唯一的字符串(也就是token),保存的数据库并返回给app

这个token可以包含用户信息,这样可以直接确定用户,减少服务端压力

之后app每次请求服务端的时候都加上这个token

服务端验证是否存在这个token,是否过期等

验证通过后获取用户信息(如果token上面有用户信息就很方便了,没有的话就得去数据库验证),并在服务端建立一个会话(session),方便短期内用户操作

收获园豆:100
刘宏玺 | 专家六级 |园豆:14006 | 2016-03-31 14:25

一定要建立数据库保存token吗?

sss2775529 | 园豆:14 (初学一级) | 2016-03-31 14:27

@sss2775529: 这个也可以不建立,你在token中加入用户名,密码(这个不能明文),登录时间,随机字符串,和其他信息(比如用户类型等)

然后把这些信息通过加密算法加密(你能够自己解密的,可以定期更换秘钥来增加安全性,秘钥可以在强制用户登录的时候更换)

这个token可以在服务端直接验证的,不用保存到数据库,但是会被劫持用户信息

刘宏玺 | 园豆:14006 (专家六级) | 2016-03-31 14:33

@刘宏玺: 做完这个token的登录验证工作量大不大,我第一次弄这东西 ,开发经验也很少,不是很懂。

sss2775529 | 园豆:14 (初学一级) | 2016-03-31 14:37

@sss2775529: 如果使用不用数据库的方案,工作量很小的

使用数据库的工作量也没大多少

关键是你们是不是在已经开发好的系统上面加入token验证的机制

预留好token的话开发很快的

刘宏玺 | 园豆:14006 (专家六级) | 2016-03-31 14:40

@刘宏玺 本来是用的验证码正确就登录 也没用到什么机制,现在想用token 项目其他部分都完成的差不多 ,如果你那有demo 可以给我借鉴一下嘛

sss2775529 | 园豆:14 (初学一级) | 2016-03-31 14:42

@sss2775529: 那也算有一点了,你在登陆的地方验证通过后把token写入cookie,然后在验证是否登录的地方改成token验证

刘宏玺 | 园豆:14006 (专家六级) | 2016-03-31 14:48

@刘宏玺: APP端 登录哦

sss2775529 | 园豆:14 (初学一级) | 2016-03-31 14:49

@sss2775529: APP端 登录难道不是在服务端验证?

刘宏玺 | 园豆:14006 (专家六级) | 2016-03-31 14:51

@刘宏玺: 我也不是很懂 ,我以为APP端登录 就不能将token存入cooie中

sss2775529 | 园豆:14 (初学一级) | 2016-03-31 14:53

@sss2775529: 那还不是可以使用js来操作

刘宏玺 | 园豆:14006 (专家六级) | 2016-03-31 14:54

@刘宏玺: 恩  谢谢了

sss2775529 | 园豆:14 (初学一级) | 2016-03-31 14:55

@sss2775529: 不一定要保存在数据库,也可以直接保存在内存中。因为token都是临时的,有一定的时效。

飞不动 | 园豆:104 (初学一级) | 2016-03-31 16:01
其他回答(2)
1

建张登录表,里面存放用户信息及token, 登录,验证用户名+密码或是手机号+验证码,后端生成token存入登录表

所有的接口都带上token参数,访问接口前先验证token是否有效

 

Rich.T | 园豆:3440 (老鸟四级) | 2016-03-31 12:57
0

可以使用cas单点登录获取tiket,之后httpclient访问接口将它作为参数传过去就好,移动端是没有cookie的

[3] | 园豆:1172 (小虾三级) | 2016-04-02 14:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册