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();