laravel 5.1以上添加自定义用户提供者

如果你没有使用传统的关系型数据库存储用户信息,则需要使用自己的认证用户提供者来扩展 Laravel。我们使用 Auth门面上的 provider 方法定义自定义该提供者:

<?php

namespace App\Providers;

use Illuminate\Support\Facades\Auth;
use App\Extensions\RiakUserProvider;
use Illuminate\Support\ServiceProvider;

class AuthServiceProvider extends ServiceProvider
{
    /**
     * Register any application authentication / authorization services.
     *
     * @return void
     */
    public function boot()
    {
        $this->registerPolicies();

        Auth::provider('riak', function($app, array $config) {
            // Return an instance of Illuminate\Contracts\Auth\UserProvider...
            return new RiakUserProvider($app->make('riak.connection'));
        });
    }
}

通过 provider 方法注册用户提供者后,你可以在配置文件 config/auth.php 中切换到新的用户提供者。首先,定义一个使用新驱动的 provider

'providers' => [
    'users' => [
        'driver' => 'riak',
    ],
],

然后,可以在你的 guards 配置中使用这个提供者:

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],
],

如图配置:

需要在设置App\Model\Users::class中的model中引用

(1)引用 use Illuminate\Foundation\Auth\User as Authenticatable;
(2)模型继承 class Users extends Authenticatable

1.需要存储用户登录的语句:

$user=Users::where('medlive_id',$md_id)->first();
Auth::guard('member')->login($user, true);

 注:如果设‘true’,需要在model模型数据库表里设置添加remember_token 字段中的“记住我”,直到用户手动退出,登录状态才解除。没有设‘true’,则按照session的设置的时长解除登录状态。

2.获取user_id

$user_id=Auth::guard('member')->id();
发布了18 篇原创文章 · 获赞 1 · 访问量 7016

猜你喜欢

转载自blog.csdn.net/weixin_42188216/article/details/86712093