我正在使用laravel编写Web服务。我想为其添加JWT身份验证。 我的api控制器位于
app \ http \ controllers \ api \ v1 \ AuthController.php
项目目录。我的laravel项目版本是5.7。我使用以下命令来安装和配置软件包:
composer require tymon/jwt-auth:dev-develop --prefer-source
然后
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"
和
php artisan jwt:secret
最后我将以下内容添加到app \ kernel.php
protected $routeMiddleware = [
....
'auth.jwt' => \Tymon\JWTAuth\Http\Middleware\Authenticate::class,
];
因为我使用的是laravel 5.7,所以我未向config / app.php文件添加任何内容。现在我想在控制器中使用JWTAuth,当我使用JWTAuth时,如下所示:
使用JWTAuth;
出现错误说:未定义的类JWTAuth ...
我重新安装了它,并多次作曲了dum-autoload,但是没有用。我在做什么错了?
答案 0 :(得分:1)
在app.php配置文件中,别名数组下,您可能想要添加JWTAuth门面。
'JWTAuth' => 'Tymon\JWTAuth\Facades\JWTAuth'
或
'JWTAuth' => Tymon\JWTAuth\Facades\JWTAuth::class
答案 1 :(得分:0)
对于低于5.5的版本,还需要在config/app.php
文件中设置服务提供商和别名。
'providers' => [
....
Tymon\JWTAuth\Providers\JWTAuthServiceProvider::class,
....
],
'aliases' => [
....
'JWTAuth' => Tymon\JWTAuth\Facades\JWTAuth::class,
'JWTFactory' => 'Tymon\JWTAuth\Facades\JWTFactory',
....
],
如果您使用的是5.5或更高版本,laravel会使用Package Auto-Discovery自动执行。
答案 2 :(得分:0)
在您的app\Http\Middleware\JwtMiddleware.php
中代替
use JWTAuth;
使用此
use Tymon\JWTAuth\Facades\JWTAuth;
但是请确保您已经在App.php文件中包含了这个外观