包开发 - 授权检查不起作用
Package development - auth check doesn't work
为了开发一个包,我做了一个简单的新鲜 Laravel 5.3 应用程序。我已按照 here 的说明进行操作,并在名为 Janis 的用户的评论中进行了一些修改。一切都很完美。
然后我决定用
升级已发布的视图
@if(Auth::check())
ID: {{Auth::id()}}.
@else
not logged in
@endif
应用程序的当前状态已上传到 Github here。
问题
视图检查不起作用。我总是有 not logged in
。
如何使 Auth::check()
工作?
在我浏览器的另一个选项卡中,我已正确登录。
一个提示
我不知道如何跟进
要做
请指导我如何使 Auth::check()
在视图中工作。
好吧,试试这个 artisan 命令
php artisan cache:clear
自 Laravel 5 以来,routes.php 中的任何路由都会自动使用 web 中间件,但这不会发生在您的包路由中。
要在您的包控制器和视图中使用 Laravel 的身份验证,您需要使用类似于以下内容的方式在您的包 route.php 中强制使用 Web 中间件:
Route::group(['middleware' => 'web'], function () {
// your package routes here
});
这是我的包裹在我的服务提供商中的路线结构。
您唯一需要做的就是为您的路由添加 'web' 中间件
$routeConfig = [
'namespace' => config('banasher.controllers.namespace')."\Panel",
'prefix' => 'panel',
'as' => 'panel.',
//TODO: add middleware
'middleware' => ['web','auth']
];
$this->getRouter()->group($routeConfig, function() {
require __DIR__.'\routes\banasher.php';
});
为了开发一个包,我做了一个简单的新鲜 Laravel 5.3 应用程序。我已按照 here 的说明进行操作,并在名为 Janis 的用户的评论中进行了一些修改。一切都很完美。
然后我决定用
升级已发布的视图@if(Auth::check())
ID: {{Auth::id()}}.
@else
not logged in
@endif
应用程序的当前状态已上传到 Github here。
问题
视图检查不起作用。我总是有 not logged in
。
如何使 Auth::check()
工作?
在我浏览器的另一个选项卡中,我已正确登录。
一个提示
我不知道如何跟进
要做
请指导我如何使 Auth::check()
在视图中工作。
好吧,试试这个 artisan 命令
php artisan cache:clear
自 Laravel 5 以来,routes.php 中的任何路由都会自动使用 web 中间件,但这不会发生在您的包路由中。
要在您的包控制器和视图中使用 Laravel 的身份验证,您需要使用类似于以下内容的方式在您的包 route.php 中强制使用 Web 中间件:
Route::group(['middleware' => 'web'], function () {
// your package routes here
});
这是我的包裹在我的服务提供商中的路线结构。
您唯一需要做的就是为您的路由添加 'web' 中间件
$routeConfig = [
'namespace' => config('banasher.controllers.namespace')."\Panel",
'prefix' => 'panel',
'as' => 'panel.',
//TODO: add middleware
'middleware' => ['web','auth']
];
$this->getRouter()->group($routeConfig, function() {
require __DIR__.'\routes\banasher.php';
});