《使用ThinkPHP6开发项目》 - ThinkPHP6使用JWT生成Token

《使用ThinkPHP6开发项目》 - 登录接口一-CSDN博客

《使用ThinkPHP6开发项目》 - 登录接口二-CSDN博客

《使用ThinkPHP6开发项目》 - 登录接口三【表单验证】-CSDN博客

登录接口成功后返回Token,便于其他需要验证用户登录的接口携带Token进行请求校验

这里ThinkPHP6使用JWT进行Token验证

一、使用composer安装JWT扩展

composer require firebase/php-jwt

安装扩展成功!!!

二、引入JWT文件

安装完成扩展后可以单独创建一个文件进行Token的生成及校验,也可以直接作为一个方法写在公共函数文件app/common.php中

#app\common.php
use Firebase\JWT\JWT;

在common.php文件中写入创建Token方法

if (!function_exists('createToken')) {
    /*
     * 创建token
     * @param array $data token记录参数
     * */
    function createToken($data)
    {
        $key = 'access_token_secret';   // 用于生成JWT令牌的签名密钥,自定义
        $alg = 'HS256';     // “alg”是JWT签名算法的名称[“HS256”、“HS512”、“RS256”]
        $exp = 7200;    // "exp"是JWT令牌的过期时间,按秒数计算
        $setting = array(
            "iss" => '',         	    //签发者 可以为空
            "aud" => '',         	    //面象的用户,可以为空
            "iat" => time(),      	    //签发时间
            "nbf" => time(),            //在什么时候jwt开始生效  (+3这里表示生成100秒后才生效);立即生效
            'data' => $data			    //记录的userid的信息,这里是自已添加上去的,如果有其它信息,可以再添加数组的键值对
        );
        $access_token = $setting;
        $access_token['scopes'] = 'access_token';  // token标识,请求接口的token
        $access_token['exp'] = time() + $exp;  // access_token过期时间,这里设置2个小时
        $access_token_value = JWT::encode($access_token, $key, $alg);
        return $access_token_value;
    }
}

完整代码

<?php
// 应用公共文件
use Firebase\JWT\JWT;

if (!function_exists('createToken')) {
    /*
     * 创建token
     * @param array $data token记录参数
     * */
    function createToken($data)
    {
        $key = 'access_token_secret';   // 用于生成JWT令牌的签名密钥,自定义
        $alg = 'HS256';     // “alg”是JWT签名算法的名称[“HS256”、“HS512”、“RS256”]
        $exp = 7200;    // "exp"是JWT令牌的过期时间,按秒数计算
        $setting = array(
            "iss" => '',         	    //签发者 可以为空
            "aud" => '',         	    //面象的用户,可以为空
            "iat" => time(),      	    //签发时间
            "nbf" => time(),            //在什么时候jwt开始生效  (+3这里表示生成100秒后才生效);立即生效
            'data' => $data			    //记录的userid的信息,这里是自已添加上去的,如果有其它信息,可以再添加数组的键值对
        );
        $access_token = $setting;
        $access_token['scopes'] = 'access_token';  // token标识,请求接口的token
        $access_token['exp'] = time() + $exp;  // access_token过期时间,这里设置2个小时
        $access_token_value = JWT::encode($access_token, $key, $alg);
        return $access_token_value;
    }
}

登录成功后生成Token

  • 13
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ThinkPHP 6 是一款基于PHP的开源框架,而 Uni-app 是一个跨平台的前端开发框架。您可以结合使用 ThinkPHP 6 和 Uni-app 来构建一个完整的前后端分离的应用。 以下是使用 ThinkPHP 6 和 Uni-app 的一般步骤: 1. 安装 ThinkPHP 6:您可以从 ThinkPHP 的官方网站(https://www.thinkphp.cn/)下载最新版本的 ThinkPHP 6,并按照官方文档进行安装和配置。 2. 创建 ThinkPHP 6 后端:使用 ThinkPHP 6 创建一个后端项目,您可以根据您的需求选择使用 MVC 或者其他开发模式。您可以定义路由、控制器、模型等来实现后端业务逻辑。 3. 创建 Uni-app 前端:使用 Uni-app 创建一个前端项目,Uni-app 可以一次编写,多端发布,可以生成小程序、H5、App 等多个平台的应用。您可以使用 Vue.js 的语法和组件来开发前端界面,并通过 API 调用与后端进行交互。 4. 定义 API 接口:在 ThinkPHP 6 后端中,您可以通过定义 API 接口来与 Uni-app 前端进行通信。您可以在控制器中编写接口方法,处理前端发送的请求,并返回相应的数据。 5. 前后端交互:在 Uni-app 前端中,您可以使用 Axios 或其他类似的 HTTP 客户端库来发送请求到后端的 API 接口,获取数据或提交数据。 6. 页面展示与交互:在 Uni-app 中,您可以使用 Vue.js 的语法和组件来定义页面的展示和交互逻辑,根据后端返回的数据来动态渲染页面,并处理用户的交互事件。 通过结合使用 ThinkPHP 6 和 Uni-app,您可以实现一个功能完善的前后端分离应用,提供良好的用户体验和高效的开发效率。具体的代码实现和细节,请参考 ThinkPHP 和 Uni-app 的官方文档和示例。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱吃瓜的程序猿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值