gpt4 book ai didi

laravel-5 - session 在 Laravel API 中不起作用

转载 作者:行者123 更新时间:2023-12-05 03:07:18 26 4
gpt4 key购买 nike

通常我在使用网站(非 API)时将临时数据/数组保存在 session 中。

今天我想用 Laravel API 做同样的事情(在 session 中保存临时数据/数组)。

这是我的路线。

Route::middleware(['auth:api', 'isMember'])->group(function () {

Route::get('createSession', function (){
$a = Session::put('example', 'this is example session.');
return "session created";
});

Route::get('getSession', function () {
return Session::get('example');
});

});

当我访问 /api/createSession 时,它返回 session created,但是当我访问 /api/getSession 时,它什么也没返回。

那么如何在 API 中使用 session ?

我认为为什么这不起作用,因为 API 使用基于 token 的身份验证而不是基于 session 的身份验证,请参阅 config/auth.php Authentication Guards 部分。

如果在 API 内使用 session 被认为是不好的做法,您对在 API 内保存临时数据/数组以用于共享托管有何建议?

到目前为止,我尝试过将数据/数组保存在 Storage::disk(local) 中,但我认为这不是最佳实践。

提前致谢。

PS:我会用Session来存储Cart的临时数据

最佳答案

Middleware api 没有包含StartSession 中间件,所以你无法获取到session。在这里查看:https://github.com/laravel/laravel/blob/master/app/Http/Kernel.php#L33

您可以将中间件“web”添加到您的路由或将 \Illuminate\Session\Middleware\StartSession::class, 添加到中间件 api,但我不推荐这样做。 API 不应使用 session 。

希望对您有所帮助。

关于laravel-5 - session 在 Laravel API 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47878898/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com