仅当前请求的Auth :: guard登录名?

时间:2019-07-03 05:11:08

标签: laravel authentication

我正在研究我的Laravel应用程序的“身份验证URL”类型的中间件,其中生成了令牌,该令牌与身份验证的用户ID和单个URL的哈希相关。换句话说,这是一种使用高熵令牌从电子邮件中查看会话页面而无需首先登录的方法。

当用户访问URL,例如https://www.example.com/some/url?authtoken=WDu4UQ5SQr4WGlfMYErxRy3hjdFMs02f2NqbQ7PA时,AuthenticatedUrl中间件在数据库中查找authtoken,验证请求URL的哈希值和存储的URL匹配,然后登录相应的用户ID(Auth::guard('user')->login($token->getUser())),以便页面的控制器可以正常响应。

话虽如此,我宁愿只允许此中间件对请求本身进行身份验证,而不是对整个会话进行身份验证。是否可以在不导致现有正常Laravel会话出现问题的情况下进行?

1 个答案:

答案 0 :(得分:0)

我发现Guard::onceUsingId($id)函数可以做到这一点。它无需设置任何相关会话值或cookie即可登录请求。