我使用官方存储库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配置文件,我在这里缺少什么?提前谢谢。
答案 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"