从包访问经过身份验证的用户

时间:2019-06-07 20:14:34

标签: php authentication laravel-5 module guard

我不知道如何使我的程序包识别已登录的用户。当控制器位于主应用程序中时,所有方法都可以正常工作,但是如果尝试将其移动到程序包中,则无法识别身份验证。

\ 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

识别我的身份验证用户,以便我可以访问策略文件并检测权限

0 个答案:

没有答案
相关问题