在 ThinkPHP 中使用 JWT 签发 Token

一、什么是 JWT

JWT,全称:Json Web Token,可以看成是一种 Token 签发方案。

Token 通常叫做认证令牌,用于客户端和服务端在交互时的身份认证。

JWT 的优势:

  1. 数据量小,传输速度快。
  2. 使用 json 数据格式,可跨语言。
  3. 即签即发,不需要在服务端保存。
  4. 适合移动端。

更多关于 JWT 的信息可访问官网查看 >>>

二、在 ThinkPHP 中安装 JWT

先去官网挑选适合自己项目的库。

进入官网,选择 Libraries ,选择 PHP 语言过滤。

在这里插入图片描述

每个库都有对应的 composer 命令。

这里选择第一个,在 ThinkPHP 项目根目录下执行命令安装:

composer require firebase/php-jwt

三、签发 Token 示例

public function createToken()
{
   
    $jwtContent = [
    	// 签发人,这里采用当前站点域名
        'iss' => request()->domain(),
        // 签发时间,当前时间戳
        'iat' => time(),
        // 到期时间,1天后
        'exp' => time
### ThinkPHPJWT Token 验证方法 在ThinkPHP框架中,JWTJSON Web Token)的身份验证可以通过`thans/jwt`扩展包来实现。此扩展包提供了多种传参方式的支持,如Header、Cookie和Param等[^1]。 对于Token的创建,在控制器内通过调用`use thans\jwt\facade\JWTAuth;`命名空间下的静态方法`builder()`并传递用户识别信息作为参数即可完成令牌构建工作。例如: ```php $token = JWTAuth::builder(['uid' => 1]); ``` 为了确保接收到的有效请求确实携带合法有效的Token,可以利用`auth()`来进行校验操作。如果需要延长用户的会话有效期,则可通过`refresh()`函数刷新当前存在的Token,并将之前的版本标记为失效状态防止重复使用。获取完整的Token字符串以及解析其中负载数据分别对应如下代码片段所示: ```php // 获取完整Token字符串 $tokenStr = JWTAuth::token()->get(); // 解析Token载荷部分 $payload = JWTAuth::auth(); $uid = $payload['uid']->getValue(); ``` 此外,还可以通过配置`.htaccess`文件设置环境变量的方式处理来自HTTP头部带有授权信息的情况,具体做法是在根目录下找到或新建该文件后添加相应规则语句[^5]。 最后值得注意的是,当涉及到实际项目开发时建议按照官方文档指导进行安装部署过程中的依赖项管理等工作;同时也要注意安全方面的问题,比如妥善保管私钥材料以防泄露风险发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

相逢不晚何必匆匆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值