gpt4 book ai didi

php - 重置密码时避免出现 "auto login"

转载 作者:行者123 更新时间:2023-12-02 04:03:05 26 4
gpt4 key购买 nike

我正在开发一个 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);
}

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

编辑:哦,不要忘记将其添加到您的包含中:

use Illuminate\Support\Str;

关于php - 重置密码时避免出现 "auto login",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46524973/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com