我想在路由中添加身份验证,我已经设置了登录名,并且可以正常运行,但是即使没有登录,您仍然可以访问我网站上的所有内容,我希望网站在'/欢迎”视图,因为它具有登录按钮。用户登录后,进入“ /”视图。有什么想法我会怎么做吗?
setTC1List(data)
答案 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中间件中对其进行解密。如果成功,则将用户转到终点,否则返回响应并终止请求。
中间件对于身份验证,授权至关重要,您也可以在管道的末尾添加中间件以检查错误。
如果您需要的不仅仅是摘要,请告诉我,我将为您找到一些示例。