重置密码时避免“自动登录” - php

我正在做一个Laravel项目。我不是最初的开发人员,所以如果我犯了一个错误,请原谅我并解释它的含义。

在这个项目中,我们有一个模块来请求新密码。提交表单后,用户将被重定向到route('password.request'),我认为这是隐藏在框架中的某个位置。

问题在于,当用户获得新密码时,他将自动登录并可以访问页面。但是他不应该这样做,因为他没有管理员权限。

因此,我尝试注销用户并将其重定向到主页,但没有任何运气。

有人可以解释为什么laravel(或“我”,因为它们是我尚未探索的项目的某些部分)为什么这样做以及如何解决此问题?

reset.blade.php(用于请求新密码的表单)

form class="form-horizontal" role="form" method="POST" action="{{ route('password.request') }}">
    {{ csrf_field() }}

    <input type="hidden" name="token" value="{{ $token }}">
....

我的自定义登出路线:

Route::get('/customLogout', 'Auth\LoginController@customLogout');

resetPasswordController.php

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ResetsPasswords;

class ResetPasswordController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Password Reset Controller
    |--------------------------------------------------------------------------
    |
    | This controller is responsible for handling password reset requests
    | and uses a simple trait to include this behavior. You're free to
    | explore this trait and override any methods you wish to tweak.
    |
    */

    use ResetsPasswords;

    /**
     * Where to redirect users after resetting their password.
     *
     * @var string
     */
    protected $redirectTo = '/customLogout';

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest');
    }
}

LoginController.php中的方法

public function customLogout(){
        //Session::flush();       
        return redirect()->route('/');
            }

参考方案

好的,我(最终)找到了一种方法。

我重写了名为“ resetPassword”的函数,并删除了登录代码。

此函数来自框架(如果有人可以帮助该文件,则不记得该文件了:S)
我在ResetPasswordController.php中覆盖了该函数

protected function resetPassword($user, $password)
    {
        $user->forceFill([
            'password' => bcrypt($password),
            'remember_token' => Str::random(60),
        ])->save();

        //$this->guard()->login($user);
    }

这使我的密码更改并自动重定向到主页。

编辑:哦,别忘了在您的include中添加它:

use Illuminate\Support\Str;

PHP:将数组值加在一起 - php

我相信这比标题听起来要难一些,但我可能完全错了。我有一个像这样的数组:[["londrina",15],["cascavel",34],["londrina",23],['tiradentes',34],['tiradentes',21]] 我希望能够采用通用…

PHP JQuery复选框 - php

我有以下片段。 var myData = { video: $("input[name='video[]']:checked").serialize(), sinopse: $("#sinopse").val(), dia: $("#dia").val(), quem: $(&#…

PHP strtotime困境 - php

有人可以解释为什么这在我的服务器上输出为true吗?date_default_timezone_set('Europe/Bucharest'); var_dump( strtotime('29.03.2015 03:00', time()) === strtotime('29.03.2015 04:00�…

PHP-全局变量的性能和内存问题 - php

假设情况:我在php中运行一个复杂的站点,并且我使用了很多全局变量。我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo'],$_REQUEST['foo']和$_REQUEST['bar']等,然后将许多不同的内容放入请求范围内(这将是适当的用法,因为这些数据指的是要求自…

php-casperjs获取内部文本 - php

我正在为casperjs使用php包装器-https://github.com/alwex/php-casperjs我正在网上自动化一些重复的工作,我需要访问一个项目的innerText,但是我尚不清楚如何从casperjs浏览器访问dom。我认为在js中我会var arr = document.querySelector('label.input…