Laravel 身份验证重置
Laravel Authentication Reset
我遇到困难如何根据 laravel 生成的令牌获取用户 ID?我对framewrok不是很熟悉,谁能帮帮我?
class ForgotPasswordController extends Controller
{
use SendsPasswordResetEmails;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest');
}
}
重置密码控制器
class ResetPasswordController extends Controller
{
use ResetsPasswords;
protected $redirectTo = '/login';
public function __construct()
{
$this->middleware('guest');
}
protected function guard()
{
return Auth::guard('user');
}
public function broker()
{
return Password::broker('users');
}
public function showResetForm(Request $request, $token = null)
{
var_dump($request->email);
var_dump( $request->token);
return view('auth.passwords.reset')->with(
['token' => $token, 'email' => $request->email]
);
}
}
如何更新密码?我只有通过电子邮件收到的令牌?
检查此步骤,以便您更好地理解 laravel 身份验证的工作原理。
- 生成身份验证脚手架:
php artisan make:auth
- 运行 创建的迁移:
php artisan migrate
- 用
php artisan route:list
检查你的路由列表,你可以看到当你运行make:auth
命令时也创建了路由。
- 记下 Auth 路由调用的控制器和方法。
- 转到路由
web.php
文件。请参阅 Auth::routes();
,这会生成默认的 Laravel Auth 路由,如果您不需要全部,请注释或删除此行并添加所需的行。
- 如果您注意到控制器和方法,您可以看到在每条路线上调用了什么。在这种特殊情况下,我认为您会寻找
ResetPasswordController
,它使用 vendor/laravel/framework/src/Illuminate/Foundation/Auth/ResetsPasswords.php
中的 ResetsPasswords
在那里您可以看到 resets
方法,这就是您必须要做的重写您的 ResetPasswordController。
我遇到困难如何根据 laravel 生成的令牌获取用户 ID?我对framewrok不是很熟悉,谁能帮帮我?
class ForgotPasswordController extends Controller
{
use SendsPasswordResetEmails;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest');
}
}
重置密码控制器
class ResetPasswordController extends Controller
{
use ResetsPasswords;
protected $redirectTo = '/login';
public function __construct()
{
$this->middleware('guest');
}
protected function guard()
{
return Auth::guard('user');
}
public function broker()
{
return Password::broker('users');
}
public function showResetForm(Request $request, $token = null)
{
var_dump($request->email);
var_dump( $request->token);
return view('auth.passwords.reset')->with(
['token' => $token, 'email' => $request->email]
);
}
}
如何更新密码?我只有通过电子邮件收到的令牌?
检查此步骤,以便您更好地理解 laravel 身份验证的工作原理。
- 生成身份验证脚手架:
php artisan make:auth
- 运行 创建的迁移:
php artisan migrate
- 用
php artisan route:list
检查你的路由列表,你可以看到当你运行make:auth
命令时也创建了路由。 - 记下 Auth 路由调用的控制器和方法。
- 转到路由
web.php
文件。请参阅Auth::routes();
,这会生成默认的 Laravel Auth 路由,如果您不需要全部,请注释或删除此行并添加所需的行。 - 如果您注意到控制器和方法,您可以看到在每条路线上调用了什么。在这种特殊情况下,我认为您会寻找
ResetPasswordController
,它使用vendor/laravel/framework/src/Illuminate/Foundation/Auth/ResetsPasswords.php
中的ResetsPasswords
在那里您可以看到resets
方法,这就是您必须要做的重写您的 ResetPasswordController。