后台和APP的登录接口一般是分开还是同一个呢?现在还使用session吗?使用session的话app端接口如何处理?如果用JWT的话又无法注销登录,也不好访问的时候自动延续过期时间啊。谢谢各位不吝赐教
后台和APP的登录接口一般是分开还是同一个呢?现在还使用session吗?使用session的话app端接口如何处理?如果用JWT的话又无法注销登录,也不好访问的时候自动延续过期时间啊。谢谢各位不吝赐教
session 是 session
web 应用是用cookie里存 session key,jwt 相当于直接保存和传输 session 内容
没有浏览器环境不能用 cookie,也不想用 jwt,那就自己管理自己处理 session key(一般也叫token...)就可以了
无论是token还是session或者cookie,其实其本质都是一样的。因为http是无状态的,我们想办法让其有状态,无非就是通过请求的时候传递一个标识
,cookie,seesion,token都是一样的道理。只要你能传递就行。
最主要的问题,一个是jwt后台不存储用户登录信息,一个是session后台存储登录信息。jwt会有一个问题,就是如果token设置太长,可能会被用户获取随意使用,且不能退出;设置太短,需要经常刷新。session的问题是如果用户量太大,后台存储可能效率不高。这个就看自己怎么抉择了。
但是实际应用上,登录系统都是需要后台存储用户登录信息的,不会采用jwt这种方式。这种方式主要用于微信,qq这种三方授权登录的。
使用 Session-Cookie 的话
Web 浏览器可以自动维护 Cookie,App 端需要主动维护 Cookie。
使用 JWT 的话
4 回答1.1k 阅读✓ 已解决
4 回答729 阅读✓ 已解决
1 回答2.5k 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
3 回答798 阅读✓ 已解决
2 回答2.1k 阅读
2 回答929 阅读✓ 已解决
登录生成token,将token和loginUserInfo以键值对的形式保存到redis(可以设置有效期),同时将token返回给客户端。
客户端在header里带上token就好了。
服务端获取header里的token,查询redis,获取loginUserInfo,查询不到说明没登录