Rob*_*tin 6 authentication dependency-injection laravel laravel-4
我如何依赖在Laravel中注入Auth?
像这样:
public function __construct(Auth $auth)
{
$this->auth = $auth;
}
Run Code Online (Sandbox Code Playgroud)
如果我这样做,那么这不起作用:
$user_type = Auth::user()->user_type;
Run Code Online (Sandbox Code Playgroud)
你应该输入提示Illuminate\Auth\AuthManager:
public function __construct(Illuminate\Auth\AuthManager $auth)
{
$this->auth = $auth;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
如果要注入Auth,实际上需要注入这个类:
use Illuminate\Contracts\Auth\Guard;
Run Code Online (Sandbox Code Playgroud)
这将解决您在内部定义的所有内容:
config/auth.php
Run Code Online (Sandbox Code Playgroud)
如果您想扩展 Auth 您可以这样做,但仅限于:
Guard Driver 是 Guard Class - 它需要实现 Guard 或 StatefulGuard 接口。
Provider 是 UserProvider 类 - 它需要实现 UserProvider 接口。
Laravel / Lumen 中的标准 Auth Guard 驱动程序是:
Laravel / Lumen 中的标准 Auth UserProviders 是:
更多关于在 Laravel 官方文档中扩展 Auth 的信息。请参阅以下链接:
https://laravel.com/docs/5.0/extending#authentication
这是我在我的控制器中的代码,它就像一个魅力:
public function createToken(Request $request, Guard $guard)
{
// return 'in progress...';
}
Run Code Online (Sandbox Code Playgroud)
扩展 Auth 类的最佳实践是在 ServiceProvider boot() 方法中。
希望这可以帮助!
干杯。
| 归档时间: |
|
| 查看次数: |
3422 次 |
| 最近记录: |