开发者社区> 问答> 正文

如何实现移动端登录服务报错 

现系统的登录模块采用以前的后端以session为token的方式。

  1. 在手机端输入用户名或者密码似乎不太方便,类似qq,微信这种似乎登陆一次就不用再登录了,该功能是如何实现的? 我自己考虑有两种实现方式, 第一种简单粗暴将session或者说token超时时间设置为无限长。 第二种就是保存用户名密码在本地。
  2. 因为Java Web中shiro或者Spring secure这些库就是提供以session这种方式实现授权的。请问有没有其他方式可以简单的实现RESTFul 接口的认证模块
  3. 作为移动应用的后端使用session这种方式有那种优缺点?作为web方式的话session是否还是当前的最佳实践?

展开
收起
kun坤 2020-06-03 10:54:01 469 0
1 条回答
写回答
取消 提交回答
  • 一般用的是oauth2方式, 后台返回token时, 可自行设置token过期时间, 通常来说, 也会附带一个refresh_token字段. 当你上面获取的token过期时, 可refresh_token重新获取token而不用再次验证用户名及密码.
    可参考下面:
    http://tools.ietf.org/html/rfc6749
    ######我一直记得OAuth是一种用户可以不告知服务A其在服务B上的用户名和密码却可以在服务A上安全的使用服务B的一种认证方式? 用OAuth2是基于哪方面考虑的?是因为有refresh_token还是OAuth已经不单单局限于安全使用第三方资源这种形式了呢?###### http://my.oschina.net/kaster/blog/130861
    参考本篇,和其他相关文章
    客户端一般不会缓存密码一类的东西,我们是缓存 openid和token ######回复 @徐牛 : openid和TokenKey时效很长,未来客户端无须登录,直接调用响应的接口,服务端会验签,无效会返回登录超时。######文章很好,但是没有讨论到如何避免需要经常登录的问题? 是tokenKey会长期有效吗?###### 客户端本身网络稳定性差,有些Session框架在网络切换后,Session失效。
    我们没有使用传统框架的Session机制,主要是和后台分布式的部署有关系。
    接口方面,我们就是使用restful请求接口,接入层的分发服务器并不验证Session,只负责分发,真正的后台接口会自己来验证Session的有效性,对于分布在不同设备和进程的应用,使用Redis来缓存Session信息。 ######自己做是最终方案,而自己做授权系统这块要设计到加密算法,session,角色管理等等,我们这边开发力量不够。所以想看看有没有合适的框架。 不知道Srping secure等有没有这方面的优化。######求解答###### stateless ###### 类似的问题我也问过
    作为第三方登陆,基本上是遵循oauth2
    作为自己的用户登陆,我方案是结合两者优点,用token加用户名,不用session,哦我做的是ios开发,安卓不知道,还有人告诉我用心跳包的方式保持类似session的功能,因为移动端不知道什么时候就离开了,每隔多少时间发个包,表明存在,我觉得太麻烦了呵呵。 ######我感觉Session是一种比较简化的token不管是你自己用token还是session都绕不过我提的问题。 心跳是在长连接中才需要考虑的吧。

    2020-06-03 14:07:38
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
QQ移送页面框架优化实践 立即下载
QQ移动页面框架优化实践 立即下载
“移”码平川—移动端高可用性体系 立即下载