tp5.0使用JWT完成token認證技術


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);
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM