我是laravel的学习者。我尝试处理confirm_code。这用于发送给用户电子邮件。然后用户可以单击电子邮件以确认其信息。
网址类似于“localhost / laravel / public / reset / $ 2y $ 10 $ UFEQ8HLCbqHhGsCVA445MetqaV5FOAb4eIPFqw0YCws8MpWvImR / q”。
我的route.php有配置,如
Route::get('/reset/{token}', 'AuthController@showReset');
在我的AuthController中,showReset函数如下:
public function showReset($token)
{
var_dump($token);die;
}
如果网址为“localhost / laravel / public / reset / 1234”,则会转储1234.但是,如果网址为“localhost / laravel / public / reset / $ 2y $ 10 $ UFEQ8HLCbqHhGsCVA445MetqaV5FOAb4eIPFqw0YCws8MpWvImR / q”,则会没有进入showReset函数。这是“管道未找到”的错误。
如果我使用“localhost / laravel / public / reset /”。 urlencode('$ 2y $ 10 $ UFEQ8HLCbqHhGsCVA445MetqaV5FOAb4eIPFqw0YCws8MpWvImR / q'),结果也一样。
这个获取请求是否太长?我不确定。但令牌必须是唯一的,重置后令牌无效。
我不知道如何在laravel中解决这个问题。请帮我。非常感谢你。
答案 0 :(得分:0)
链接中的/
localhost/laravel/public/reset/
$2y$10$UFEQ8HLCbqHhGsCVA445MetqaV5FOAb4eIPFqw0YCws8MpWvImR/q
^ here
导致laravel将其路由到另一条路线,例如
Route::get('reset/foo/bar','Controller@index');
您可以使用urlencode()来解决此问题。
$href = 'localhost/laravel/public/reset/'.urlencode('
$2y$10$UFEQ8HLCbqHhGsCVA445MetqaV5FOAb4eIPFqw0YCws8MpWvImR/q');