最佳实践:经过身份验证的用户和用户管理

时间:2015-03-19 20:29:32

标签: authentication laravel model laravel-5

Laravel有点新,我在Laravel 5中构建一个应用程序,然后我有经过身份验证的用户,然后管理用户记录。我目前正在使用Zizaco Entrust并且角色和权限都设置得很好。目前,我正在通过控制器将用户对象传递给我的模板,以供经过身份验证的用户使用,因为这是我通过委托检查hasRole的唯一方法。当我开始管理用户记录时,这会成为一个问题,因为我想传递用户和用户并使用REST,但现在用户已被登录用户占用。

我基本上都在寻找让登录用户始终可用的最佳做法(因此页眉有他们的名字和信息,我可以随时记录他们对数据的编辑),然后用户模型加载用户索引我正在研究模型绑定,但现在让我更加困惑 - 我在我的一个模型上实现了它,现在hasMany的孩子没有加载。

我曾希望Auth :: user()为我提供登录的用户信息但I can't do Entrust hasRole就这样,所以它不可用,除非我使用Auth :: user()从模型中加载用户。

1 个答案:

答案 0 :(得分:0)

虽然它导致我的登录问题,但我发现如果我在config / auth.php中更改我的模型

'model' => 'App\User',

'model' => 'App\Models\User',

我可以使用Auth :: user() - > hasRole('admin')。现在,如果我能解决为什么这样做会导致我在身份验证上出现此错误:

ErrorException in EloquentUserProvider.php line 106:
Argument 1 passed to Illuminate\Auth\EloquentUserProvider::validateCredentials() must be an instance of Illuminate\Contracts\Auth\Authenticatable, instance of App\Models\User given, called in /Users/dylanglockler/Sites/laravel-lovelaundry-5/vendor/laravel/framework/src/Illuminate/Auth/Guard.php on line 383 and defined