【问题标题】:jwtauth in laravel webservice not workinglaravel webservice中的jwtauth不起作用
【发布时间】:2019-07-20 01:36:08
【问题描述】:

我正在用 laravel 编写一个网络服务。我想向它添加 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...

我重新安装了它并做了几次 composer dum-autoload 但没有工作。我做错了什么?

【问题讨论】:

    标签: laravel api web-services authentication jwt


    【解决方案1】:

    在 app.php 配置文件的 aliases 数组下,您可能需要添加 JWTAuth 门面。

    'JWTAuth' => 'Tymon\JWTAuth\Facades\JWTAuth'
    

    'JWTAuth' => Tymon\JWTAuth\Facades\JWTAuth::class
    

    【讨论】:

    • =>两边都必须在单人间?像这样: 'JWTAuth' => 'Tymon\JWTAuth\Facades\JWTAuth' 。对吗?
    • 你是否正确安装了jwt? ,尝试卸载并重新安装github.com/tymondesigns/jwt-auth/wiki/Installation
    • 是的。我确实卸载了它并再次安装了几次。
    • 尝试包含(使用 Tymon\JWTAuth\Facades\JWTAuth;)
    • 如果我在控制器中使用此代码:'use Tymon\JWTAuth\JWTAuth' 没关系,但是当我想使用 JWTAuth::attempt();它说不应该静态调用非静态方法尝试()。
    【解决方案2】:

    对于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 自动执行此操作。

    【讨论】:

      【解决方案3】:

      在你的app\Http\Middleware\JwtMiddleware.php 中而不是这个

      use JWTAuth;
      

      使用这个

      use Tymon\JWTAuth\Facades\JWTAuth;
      

      但要确保你已经在你的 app.php 文件中包含了这个外观

      【讨论】:

        猜你喜欢
        • 2016-04-28
        • 2016-08-23
        • 2017-10-17
        • 2017-03-31
        • 2016-08-08
        • 2016-09-01
        • 1970-01-01
        • 2019-03-26
        • 1970-01-01
        相关资源
        最近更新 更多