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

时间:2016-01-14 09:05:29

标签: authentication laravel-5 guard

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

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

php artisan make:auth

但我无法理解如何为管理员实施身份验证。

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

由于

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

我已经完成了我的用户身份验证,现在我只是为了管理员身份验证,并且它没有响应检查我的数据库用户名&密码。 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',
    ],
],