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 扩展了“注销”功能的主要内容,如果未能解决你的问题,请参考以下文章

Laravel注销功能不起作用

Laravel 5 教程 - 文件上传

laravel 队列重启

Laravel 认证用户注销错误

Laravel 路由问题:自动重定向到根文件夹

Vue.js / Laravel - 正确处理注销