首页 文章

Laravel 5.2管理员和用户的身份验证

提问于
浏览
1

我想使用laravel 5.2 auth api为管理员和用户进行身份验证,我有一个用户表,我在其中为用户和管理员定义了ENUM类型角色字段,所以我只需要使用表但不同的视图和路由用于管理员和用户登录 .

我已成功使用以下命令创建用户身份验证 .

php artisan make:auth

但我无法理解如何为管理员实施auth .

在回答之前请记住,只有一个用户表具有角色字段和管理员和用户登录的不同视图 . 成功登录后,用户将重定向到主页,管理员应重定向到管理员/仪表板 .

谢谢

2 回答

  • 1

    你可以使用https://github.com/romanbican/roles包......

    if ($user->is('admin')) { // you can pass an id or slug
        // or alternatively $user->hasRole('admin')
    }
    
  • 0

    我已经完成了我的用户身份验证,现在我只是为admin auth做了,并且它没有响应检查我的数据库用户名和密码 . fyi,我在phpmyadmin手动创建了管理员表 . 所以在迁移文件夹中没有create_admin_table.php文件 . 救命 :(

    这是我的控制器

    use Illuminate\Support\Facades;
    use Hash;
    use Auth;
    use App\Admin; // i created this Model for admin
    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\Validator;
    use App\Http\Requests;
    function login(Request $req){
        $email = $req->input('email');
        $password = $req->input('password');
    
        if(Auth::guard('admin')->attempt([
            'email' => $email, 
            'password' => $password
        ]))
        {
            return redirect('/signin');
        }else{
            return redirect('/Admin/signin');
        }
    }
    

    我的内核:

    protected $routeMiddleware = [
        'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
        'can' => \Illuminate\Auth\Middleware\Authorize::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
        'admin' => \App\Http\Middleware\RedirectIfNotAdmin::class,
    ];
    

    我的身份证明:

    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
    
        'api' => [
            'driver' => 'token',
            'provider' => 'users',
        ],
    
        'admin' => [
            'driver' => 'session',
            'provider' => 'admins',
        ],
    
        'admin-api' => [
            'driver' => 'token',
            'provider' => 'admins',
        ],
    ],
    
    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\User::class,
            'table' => 'users',
        ],
        'admins' => [
           'driver' => 'eloquent',
            'model' => App\Admin::class,
            'table' => 'admins',
        ],
    ],
    

相关问题