使用了api的方式访问服务器的话,服务器是不是就不会帮维护session了

我使用的是版本比较老的 laravel lumen 5.5,我创建了两个方法用于设置和获取 session,获取时用的 all (); 方法获取全部,但是我发现每次获取时_token 都不相同,而且 key 也丢失了。可以看以下截图

使用了api的方式访问服务器的话,服务器是不是就不会帮维护session了

使用了api的方式访问服务器的话,服务器是不是就不会帮维护session了

我只有在设置值时 put (‘key’, ‘value’),返回数据才会有 key。
实际上我想使用 session 是因为我想实现一个功能,希望浏览器关闭时,会话也随之关闭,而 session 有个配置 “expire_on_close=true” 这样我就可以第一时间明白还剩下多少个 session,可以继续为剩下的 session 提供服务。
如果 session 没法使用的话可能会考虑长链接的方式。

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 4

api 是无会话状态的,也就是前台没有保存你的 session 对应的 cookies,除非你对于 session 和 token 进行了关联处理,具体要看包的使用方法,和认证方式,对于你说的方法,我觉得可以参考这个逻辑,在全局判断接口请求状态,长时间没有请求后,标记该用户,即可完成

4年前 评论
rex123 (楼主) 4年前
莫须有 (作者) 4年前
rex123 (楼主) 4年前
莫须有 (作者) 4年前

不懂你要做什么

提问的智慧
file

lemon 是什么?

_token 每次都不一样是正常的,因为 csrf 中间件会每次更换 _token

file
这当然的啊

为什么要知道多少个 session? 是要知道当前在线人数吗?

4年前 评论
rex123 (楼主) 4年前
lyxxxh (作者) 4年前
xylp

可以在 api 公参数里面设置加密过 session 参数,然后请求到服务器之后再解密,session 存数据库即可

4年前 评论

Api 本身就是不需要 Session 的,如果你确定需要,可以使用 web 中间件组,或者在 api 中间件组中加入 StartSession 中间件,不过显然是不合理的。

4年前 评论