laravel中安装JWT

4 篇文章 1 订阅
背景

公司处在前后端分离的转折阶段,作为后端人员,要找到一个适用于接口验证的方式,公司仍保持后端使用Laravel框架,而laravel框架默认的是【web】方式,web 方式是使用 session 来进行用户认证,当然也是可以使用,但是有一定的不安全,经过调研,主流使用的Token验证方式。

介绍JWT

JWT资料

JWT:全称Json Web Token,是一种规范化的token。可以理解为对token这一技术提出的一套规范,是在RFC 7519中提出的。

安装JWT

我也是很醉,composer安装它的时候,我真的是走一步一个错呀。。。。
先打开官方指导文档,就能看见laravel installation,完美呀

composer require tymon/jwt-auth

但是我执行,就遇到了各种问题,以下是整理好的问题以及解决办法

composer第一错:内存不足

PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52
Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52

在composer官网有很多解决办法,说一下我常用的两种方法

  • 方法一:临时修改缓存
    在使用composer require时,命令前加上COMPOSER_MEMORY_LIMIT=-1

COMPOSER_MEMORY_LIMIT=-1 composer update

  • 方法二:修改php.ini文件
    一看就知道这个修改后,永久有效。
    1.首先查看当前homestead中php版本,来确定要修改哪个版本的php.ini文件

php -v
在这里插入图片描述

2.进入php7.2目录,找到php.ini并修改

sudo vim /etc/php/7.2/cli/php.ini
在这里插入图片描述

composer第二错:镜像

异常信息如下:

Warning from https://mirrors.aliyun.com/composer: You are using an outdated version of Composer. Composer 2.0 is now available and you should upgrade. See https://getcomposer.org/2
这只是个警告,但是还是处理一下吧

使用阿里云的镜像,配置如下:

  • 方法一:全局配置

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
取消配置:
composer config -g --unset repos.packagist

  • 方法二:仅当前项目配置

composer config repo.packagist composer https://mirrors.aliyun.com/composer/
取消配置:
composer config --unset repos.packagist

调试

composer -vvv require alibabacloud/sdk

添加-vvv是为了查看详细的安装信息,其中就可以看到使用了新配置的镜像域名去加载依赖包
在这里插入图片描述

composer第三错:安装包与当前php版本冲突

报错信息:

Your requirements could not be resolved to an installable set of packages.
Problem 1
- mockery/mockery 1.4.2 requires php ^7.3 || ^8.0 -> your PHP version (7.2.22) does not satisfy that requirement.
- mockery/mockery 1.4.2 requires php ^7.3 || ^8.0 -> your PHP version (7.2.22) does not satisfy that requirement.
- mockery/mockery 1.4.2 requires php ^7.3 || ^8.0 -> your PHP version (7.2.22) does not satisfy that requirement.
- Installation request for mockery/mockery (locked at 1.4.2, required as ^1.3.1) -> satisfiable by mockery/mockery[1.4.2].

从这里可以看出是php版本不对,虽然我没有指明要安装 **mockery/mockery **
这个扩展,那他应该是依赖的,竟然php版本不符合,那就切换到适合的php版本下,单独composer这个依赖,之后再composer JWE。

解决步骤如下:

  • 切换到合适的php版本

sudo update-alternatives --config php
在这里插入图片描述

  • 下面就是安装依赖包,然后安装JWT,具体的命令就不赘述了。
写在最后

解决完上面的问题,我终于将这个jwt扩展搞下来了,万里长征第一步也迈出去了。
这里真的是提高解决问题的能力,假如说composer require失败的时候,也可以手动更新composer.json文件,然后执行composer update命令。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值