首页
归档
笔记
树洞
搜索
友言

文章详情

Interesting People Record Interesting.

/ PHP / 文章详情

tp5.0使用JWT完成token认证技术

Sonder
2022-04-19
1508字
4分钟
浏览 (6.9k)

1、安装

复制代码
composer require firebase/php-jwt

2、封装(在框架根目录extend下新建Token.php)

复制代码
<?php
use Firebase\JWT\JWT;
class Token
{
    const SECRET = 'hello';//密钥
    //创建token
    static public function create_token($uid = 1)
    {
        $payload = [
            'iss' => 'pyg',                //签发人(官方字段:非必需)
            'exp' => time() + 60,     //过期时间(官方字段:非必需)
            'aud' => 'admin',              //接收人(官方字段:非必需)
            'nbf' => time(),               //生效时间(官方字段:非必需)
            'iat' => time(),               //签发时间(官方字段:非必需)
            'admin_id' => $uid,        //自定义字段(用户id)
        ];
        $token = JWT::encode($payload, self::SECRET, 'HS256');
        return $token;
    }

    //验证token
    static public function verify_token($token)
    {
        try {
            $Result = JWT::decode($token, self::SECRET, ['HS256']);
            return true;
        } catch (\Exception $e) {
            return false;
        }
    }
}

3、调用(参考)

复制代码
<?php

namespace app\api\controller;

use think\Controller;
use think\Request;
use Token;

class Login extends Controller
{
    public function login(){
        //登录成功生成token
        $user_id = 2;
        $token = Token::create_token($user_id);
        return $token;
    }

    public function verifyToken(){
        $token = input('token');
        $res = Token::verify_token($token);
        var_dump($res);
    }
}

本文转自 https://www.cnblogs.com/ccdr/p/15083214.html,如有侵权,请联系删除。

下一篇 / canvas刮一刮

🎯 相关文章

💡 推荐文章

🕵️‍♂️ 评论 (0)