我不知道如何使我的程序包识别已登录的用户。当控制器位于主应用程序中时,所有方法都可以正常工作,但是如果尝试将其移动到程序包中,则无法识别身份验证。
\ app \ Http \ Middleware \ RedirectIfAuthenticated.php不断把我赶出去。
我使用警卫“ admin”登录主应用程序。我可以导航到应用程序的所有页面,但是一旦尝试从程序包访问页面,我就会被踢出去。
我在控制器构造中添加了一些东西来访问Auth :: admin防护,但是没有任何效果...请参见下面的代码。我注释掉了几行
\ app \ Http \ Middleware \ RedirectIfAuthenticated.php
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) //RETURNS NULL
{
if ($guard == "admin")
{
//user was authenticated with admin guard.
return redirect()->route('admin.home');
} else {
//default guard.
return redirect()->route('home');
}
}
return $next($request);
}
包裹路线
Route::prefix('/admin')->middleware('auth:admin')->name('admin.')->namespace('RF\RolesPermissions\Http\Controllers\Admin')->group(function(){
Route::resource('admins', 'AdminController', ['except' => ['show'] ]);
});
软件包中的管理控制器
class AdminController extends Controller
{
// protected $guard_name = 'admin';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
//Auth::shouldUse('admin');
//$user = Auth::user();
//dd($user);
//dd(Config::get('auth'));
//$this->middleware('auth');
}
没有错误。我只需要
if (Auth::guard($guard)->check()) //RETURNS NULL
识别我的身份验证用户,以便我可以访问策略文件并检测权限