本文主要是介绍laravel 5.1以上添加自定义用户提供者,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
如果你没有使用传统的关系型数据库存储用户信息,则需要使用自己的认证用户提供者来扩展 Laravel。我们使用 Auth门面上的 provider
方法定义自定义该提供者:
<?phpnamespace 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();
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42188216/article/details/86712093
这篇关于laravel 5.1以上添加自定义用户提供者的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!