向路由添加身份验证

时间:2020-04-16 16:15:38

标签: php laravel

我想在路由中添加身份验证,我已经设置了登录名,并且可以正常运行,但是即使没有登录,您仍然可以访问我网站上的所有内容,我希望网站在'/欢迎”视图,因为它具有登录按钮。用户登录后,进入“ /”视图。有什么想法我会怎么做吗?

setTC1List(data)

3 个答案:

答案 0 :(得分:0)

您是否使用Laravel的默认Auth?

如果是,请查看文档https://laravel.com/docs/7.x/authentication#protecting-routes

否则,您将必须创建一个中间件来检查登录会话,如果未登录用户,则将重定向返回到url。

答案 1 :(得分:0)

您可以像下面这样在auth中间件下对路由进行分组:

Route::middleware(['auth'])->group(function () {
    // your protected routes goes here
});

或在控制器的构造函数中分别保护每个路由,如下所示:

public function __construct()
{
    $this->middleware('auth');
}

放在一边:为什么要两次定义身份验证路由?

答案 2 :(得分:0)

我会为登录设置一条路线。将其发布,以便您可以将登录名存储在数据库中。然后,成功登录后,您可以向用户传递JSON网络令牌。让客户端存储该网络令牌。

然后,您可以添加身份验证中间件,并将其插入到管道中,然后再将请求推送到端点。让用户传递Web令牌并在auth中间件中对其进行解密。如果成功,则将用户转到终点,否则返回响应并终止请求。

中间件对于身份验证,授权至关重要,您也可以在管道的末尾添加中间件以检查错误。

如果您需要的不仅仅是摘要,请告诉我,我将为您找到一些示例。