Laravel 5.0 扩展了“注销”功能
Posted
技术标签:
【中文标题】Laravel 5.0 扩展了“注销”功能【英文标题】:Laravel 5.0 extending the 'Logout' functionality 【发布时间】:2015-10-17 18:17:21 【问题描述】:我最近设置了会话以保存到数据库中,并在会话表中添加了一个 user_id 字段,以便我可以显示登录用户的名称。为了让 laravel 在用户登录时保存他们的 id(假设 laravel 不会定期查找 user_id 列),我不得不在 Authenticate.php 文件中添加一些代码来处理它。
现在,我正在尝试在用户注销时将 user_id 字段设置为 null
,因为目前,由于 user_id 字段即使在他们注销后仍然包含用户的 id,它仍然显示他们已登录,即使他们不再登录。我希望在不实际接触供应商文件的情况下扩展身份验证/注销功能,以包含我在注销时将 user_id 设置为 null 的功能。
我可以在哪里添加这个功能?在 AuthController.php 文件中?在 routes.php 中添加我自己的 auth/logout 路由声明?
如果您对我有任何问题或需要我更好地解释任何事情,请告诉我。
谢谢。
【问题讨论】:
如何注销用户?注销后ID应该被清除,我不确定你是怎么得到的。 会话也包括来宾用户。我只需要它声明(关于 user_id)用户现在是访客用户。 【参考方案1】:您可以将以下函数放入AuthController.php
以覆盖AuthenticatesAndRegistersUsers
trait 的默认函数。您可以根据需要进行更改。
/**
* Log the user out of the application.
*
* @return \Illuminate\Http\Response
*/
public function getLogout()
$this->auth->logout();
return redirect(property_exists($this, 'redirectAfterLogout') ? $this->redirectAfterLogout : '/');
【讨论】:
哇,我现在真的很愚蠢,因为我没有考虑简单地复制 AuthenticatesAndRegistersUsers.php 函数来直接在 AuthController.php 文件中覆盖它......谢谢伙计。以上是关于Laravel 5.0 扩展了“注销”功能的主要内容,如果未能解决你的问题,请参考以下文章