带有 API 令牌的 Laravel 会话 cookie

Posted

技术标签:

【中文标题】带有 API 令牌的 Laravel 会话 cookie【英文标题】:Laravel session cookies with API token 【发布时间】:2018-05-19 21:24:43 【问题描述】:

我们有一个用于电话的混合应用程序。一些页面是在应用程序中实现的,而其他页面则是我们展示的网页。 所以我可以说它是带有几个离线页面的浏览器。

登录功能完全在浏览器中实现。同时用户也应该在浏览器中获得授权。 所以...对我来说唯一合乎逻辑的解决方案是通过 API 获取令牌,然后在内部浏览器中设置会话 cookie。

我认为最安全的方式是使用令牌在浏览器内发送发布请求。但是是否有任何公共函数可以“解析”这个令牌?

或其他方式 - 发送 api 请求以直接获取 cookie。也没有获取会话 cookie 的功能。仅适用于 xsrf-token。

或者有什么方法可以使用 api 令牌之类的会话进行常规路由?

【问题讨论】:

【参考方案1】:

你可以试试Laravel Passport。这是一个官方的 laravel 包,你可以在他们的文档中查看详细信息。

【讨论】:

我已经在用这个了吗?问题是 - 例如,我如何通过在发布请求中获取令牌来检测用户?如果我已经有了这个令牌,那么如何使用令牌设置会话 cookie? 传递您从Passport 获得的令牌,然后在您的函数中,您可以使用Auth::user() 访问经过身份验证的令牌。然后您可以使用Auth::login($user) 登录User 实例 是的,这就是问题所在。我在哪里可以使用令牌找到$user?如何在常规路由中通过令牌检测用户 当您使用auth:api 中间件保护您的路由时,您只需调用Auth::user() 即可访问经过身份验证的用户。鉴于您使用的是Passport

以上是关于带有 API 令牌的 Laravel 会话 cookie的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 6 会话和 CSRF Coo​​kie 未设置——每次页面加载的会话数据库中的新条目

在哪里存储 JWT 令牌 Laravel 5.6 应用程序?

是否可以使用 API 令牌在 laravel 中进行用户模拟?

Laravel JWT API 令牌处理

使用带有令牌而不是 Cookie 的 Django 会话框架?

Laravel 4 使用令牌进行身份验证