php开发app接口,用户登录问题
情况是这样的,之前的用户登录接口,登录成功以后服务器不存session
,可能在app那端存着吧。所以即便用户登录成功,在调某些接口的时候,需要user_id
还是要当作参数传递过去,而不是从服务器的 session
里获取。
今天想修改登录注册的接口,我同事说app接口没有session
的概念,但是我总觉得应该有其他方式将用户会话存在服务器。
所以我想请教各位大神:
1. php开发app接口有没有`session`的概念?
2. 如果没有,用户会话是怎么处理的?就是当前是否在登录状态
谢谢大家!
漂亮男人2017-05-16 13:01:53
首先你弄个登陆接口,app调用这个接口,你验证他传递过来的username password 之后,给他返回一个 token 。
token 你建个表保存,表里存 user_id token expire_data 等字段,注意token 和 user_id 是唯一的。
以后他每次请求其他的接口,只需要把这个token带给你,你验证token就可以。
传递的token 设置加密/设置过期/保证唯一 基本上就可以了。
仅有的幸福2017-05-16 13:01:53
1.请求头里带用户 username
和 password
,到服务器端做验证,通过才继续下边业务逻辑。
优点:防止了服务器端 api
被随意调用。
缺点:每次都交互用户名和密码,交互量大,且密码明文传输不安全。
2.第一次请求,要求 username
和 password
,验证通过,发送 cookie
到客户端, username
和 password
,验证通过,发送 cookie
到客户端, app
保存 cookie
值。
每次请求带上 cookie
。
优点:和 pc
保存 cookie
值。
cookie
。优点:和 pc
上浏览器认证的原理一样了。
app
以上两点,只有注册用户,才能有权访问业务逻辑。
有大量的不需要注册数据apitoken
3.制定一个
缺点:随机串生成规则要保密。🎜🎜如果我的答案解决了你的问题,请点击
采纳答案
ringa_lee2017-05-16 13:01:53
可以这样弄,不同用户通过授权接口获得不同的token,对token 设置好过期时间,让client每次请求把token放在header内,并定时更新token
滿天的星座2017-05-16 13:01:53
用token来代替传统的存储在客户端cookie中的session_id,然后token在redis等数据库中作为键名,键值则为用户uid,并且可以通过自带的过期机制来模拟session_id