安装后未发布Jwt配置文件

时间:2017-05-07 21:27:43

标签: php laravel jwt laravel-5.4

我使用官方存储库MDN上的说明将jwt添加到我的Laravel应用程序中。安装成功(即运行作曲家更新后)。在那个阶段,我只需要在服务和别名数组中添加jwt并运行publish命令来发布配置文件。

使用

php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\JWTAuthServiceProvider"

上面的命令运行并显示Publishing complete但是,这不是我期望它显示生成的配置文件jwt.php的名称的预期行为。这不是案例,并且正如预期的那样运行下一个命令

php artisan jwt:generate

返回并错误

[Symfony\Component\Console\Exception\CommandNotFoundException]  
  There are no commands defined in the "jwt" namespace.  

我猜这是因为缺少jwt.php配置文件,我在这里缺少什么?提前谢谢。

7 个答案:

答案 0 :(得分:1)

我在解决问题后几天发布了这个答案,因为没有答案。 经过一些研究后,我发现尽管安装正确,但配置文件可能无法发布的主要原因是由于config:cache在添加新配置时出现混淆。但是我通过运行

解决了这个问题
php artisan config:clear

然后再次运行发布命令并繁荣!!有效。这种方法不仅适用于JWT,也适用于其他未能发布的配置,但值得注意的是,问题也可能由其他内容引起。

答案 1 :(得分:1)

我遇到了同样的问题。以下对我有用:

php artisan config:clear

php artisan vendor:publish --provider =" Tymon \ JWTAuth \ Providers \ JWTAuthServiceProvider :: class"

php artisan config:cache

php artisan vendor:发布

答案 2 :(得分:1)

要在laravel中安装tymon / jwt-auth软件包,应按照以下步骤操作:

Composer.json要求应该是这样的:

"require": {
       "php": ">=5.5.9",
       "laravel/framework": "5.1.*",
       "tymon/jwt-auth": "0.5.*"
   },

然后在config / app.php中将以下内容放在providers数组中:

Tymon\JWTAuth\Providers\JWTAuthServiceProvider::class

然后在config / app.php的别名数组中添加以下内容

'JWTAuth'   => Tymon\JWTAuthFacades\JWTAuth::class,
'JWTFactory' => Tymon\JWTAuthFacades\JWTFactory::class

然后输入以下命令:

php artisan vendor:publish

注意:各种教程将向您推荐以下php工匠供应商:publish --provider =" Tymon \ JWTAuthProviders \ JWTAuthServiceProvider"但是,尝试上面的命令,即没有--provider,它将工作

然后输入:

php artisan jwt:generate

完成此步骤后,您可以在app / config / jwt.php中验证生成的密钥,如下所述:

'secret' => env('JWT_SECRET', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'),

现在你很高兴......

答案 3 :(得分:0)

对于流明5.5。*

#include <stdio.h>
#define M 2
#define P 3
#define N 2
int main()
{
int a[M][P],b[P][N],c[M][N];
int i,j,k;
/* here is where we fill the matrices */
for (i=0;i<M;i++)
for (j=0;j<N;j++)
{
c[i][j]=0;
for (k=0;k<P;k++)
c[i][j]+=a[i][k]*b[k][j]; /*Here there is the difference, instead of a[k][i]*b[j][k], it's a[i][k]*b[k][j]*/
}
}

将打击代码添加到app / Providers / AppServiceProvider.php注册方法:

$ composer require tymon/jwt-auth:"^1.0.0"

答案 4 :(得分:0)

对于laravel 5.5及更高版本,安装jwt版本1.0.0-rc.1效果很好,您不需要在服务提供商中注册jwt类,只需在composer中要求它即可:

=ARRAYFORMULA(({"FiBu MD5";IF(ISBLANK(AG2:AG),"",(MD5(O2:O)))}))

之后,您可以发布。

答案 5 :(得分:0)

将以下代码段添加到providers部分下的bootstrap / app.php文件中,如下所示:

// Uncomment this line
$app->register(App\Providers\AuthServiceProvider::class);

// Add this line
$app->register(Tymon\JWTAuth\Providers\LumenServiceProvider::class);

然后取消注释同一文件中的身份验证中间件:

$app->routeMiddleware([
    'auth' => App\Http\Middleware\Authenticate::class,
]);

答案 6 :(得分:0)

如果您的laravel版本是5.8,请参阅this文档。

对于5.8,您必须首先生成密钥。

$php artisan jwt:secret

然后添加JWTAuth提供程序。

$php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"