公司的 mobile app 是外包给其他公司做的,所以现在他们需要我们提供 API 接口进行调试,由于没有 API 开发的经验,所以现在一个比较难把握的问题就是如何实现服务器端与移动 APP 端通信时的用户身份认证问题。搜集了一些资料,大部分的建议是在服务器端生成一个 token 然后在通信报文的 headers 利用这个 token 来进行验证。这里有两个问题,首先这样直接生成 token 进行认证的安全性。其次,生成的 token 应该怎么保存呢?存在 DB 里面还是哪个地方?(服务器端使用的是 php)因为本身产品对安全性要求不是特别高,远没有达到网银之类的需求,所以在不考虑使用 oauth 等授权协议基础上,我比较希望知道一些常用的身份验证机制,以保证基本的安全性即可。再把问题写清楚点:1.怎么生成安全性比较高的 token。2.token 需不需要设置过期时间(考虑到是 mobile app,所以这个比较难设计,因为很少有人会在 app 上会 log out 再重新登录)。3.token 除了存在 db 内,有没有一些更方便合适的方式。
2 回答
噜噜哒
TA贡献1784条经验 获得超7个赞
APP里预埋一个token,结合时间戳/每次请求的一个随机值randstr,生成一个最终signature,在Server进行验证即可,(安全级别不是很高,但防大部分恶意请求没问题了)。
如果还需要针对不同用户生成不同的sigature,可以结合手机的DeviceId,在首次请求是上报这个,以后的请求就把DeviceId也作为因子带入sigature的生成里。当然,这个过程也不是绝对安全的。
看你的意思是不需要绝对安全的,所以猜测你的目的是防恶意请求的,以上两种方式应该可以满足了。
添加回答
举报
0/150
提交
取消