关于我的问题:
Creating Password Reset Function without using Laravel make:auth
邮件发件人在我的电子邮件中发送了重置电子邮件的url。但如果我单击链接,则找不到该对象,因为URL不存在于我的routes.php
中
我的问题是:
如何捕获重置密码链接?
我的控制器:
public function recover(Request $request)
{
$user = Admin::where('email', $request->email)->first();
if (!$user) {
$error_message = "Your email address was not found.";
return redirect()->back()->with(['errors' => $error_message]);
}
try {
Password::sendResetLink($request->only('email'), function (Message $message) {
$message->subject('Your Password Reset Link');
});
} catch (\Exception $e) {
$error_message = $e->getMessage();
return redirect()->back()->with(['errors' => $error_message]);
}
return redirect()->back()->with(['success' => 'A reset email has been sent! Please check your email.']);
}
我的路线:
Route::post('/forgot', [
'uses' => 'RegisterController@recover',
'as' => 'password.reset'
]);
Route::get('password/reset/{token?}', 'Auth\PasswordController@showResetForm');
重置密码中给出的电子邮件链接:
http://localhost/forgot?c2108023762b4f86029d5758207cb4156fd58052ad9d6b13b729ce84092937de
发布于 2018-02-23 14:09:10
你可以通过Request::query()
函数来捕捉它。参见下面的示例代码:
// http://localhost/forgot?c2108023762b4f86029d5758207cb4156fd58052ad9d6b13b729ce84092937de
Route::get('forgot', function (Illuminate\Http\Request $request) {
$query = $request->query();
$token = (array_keys($query))[0];
echo $token; // c2108023762b4f86029d5758207cb4156fd58052ad9d6b13b729ce84092937de
});
https://stackoverflow.com/questions/48940719
复制相似问题