带有 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 Cookie 未设置——每次页面加载的会话数据库中的新条目
在哪里存储 JWT 令牌 Laravel 5.6 应用程序?
是否可以使用 API 令牌在 laravel 中进行用户模拟?