【问题标题】:Logout and click on back button redirect to page issue注销并单击后退按钮重定向到页面问题
【发布时间】:2018-12-14 01:00:59
【问题描述】:

在 Laravel 中,当我注销并单击后退按钮时,它会返回到我注销的页面。

我认为是issue of flush session data,所以我使用以下方法刷新会话数据并重定向到登录页面。

我已经删除了这行Artisan::call('cache:clear');,因为清除缓存很好。

public function getLogout()
{
        $this->auth->logout();
        Artisan::call('cache:clear');
        Session::flush();
        return redirect('login');
}

这是我也使用过的库:

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Support\Facades\Redirect;
use Lang;
use App\User;
use Auth;
use Session;

我认为会话没有清除数据或重定向问题。

【问题讨论】:

标签: laravel laravel-5


【解决方案1】:

这是在后台调用的原始函数:

里面 vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticateUsers.php

 public function logout(Request $request)
    {
        $this->guard()->logout();

        $request->session()->invalidate();

        return redirect('/');
    }

如果你想进行自定义,你需要在你的 LoginController 中重写这个函数。

【讨论】:

  • 是的,我已经覆盖了这是LoginController,但仍然没有运气,因为我点击后退按钮它重定向到注销前最后访问的页面,仍然没有运气。
【解决方案2】:

这应该适合你。

 public function __construct() {
    //Log out Back
    header("Cache-Control: no-cache, no-store, must-revalidate"); // HTTP 1.1.
    header("Pragma: no-cache"); // HTTP 1.0.
    header("Expires: 0"); // Proxies.
    header('Access-Control-Allow-Origin: *');      
}

此代码应在基本控制器上。

【讨论】:

  • 我在LoginController 中使用了上面的代码,但仍然没有运气
  • @raju_eww 不在登录控制器中,而是在您单击注销的控制器中。假设您在个人资料页面中。然后,您必须将该代码 sn-p 放在配置文件控制器上并尝试从该 url 注销。它应该工作。祝你好运:)
  • 但是我在标头中有常见的注销,所以我必须将它用于所有控制器?
  • 尝试放入一个,看看是否有效。然后你可以把它放在所有控制器扩展的基础控制器上。
猜你喜欢
  • 2011-07-08
  • 2012-05-07
  • 2011-10-24
  • 2023-04-03
  • 2011-10-09
  • 2020-04-16
  • 2013-10-01
  • 2012-11-22
  • 1970-01-01
相关资源
最近更新 更多