package
0.0.35
Repository: https://github.com/otkinlife/go_tools.git
Documentation: pkg.go.dev

# README

JWT Tools

jwt_tools 是一个用于生成和验证 JWT 令牌的 Go 包。它提供了简单易用的接口来创建和管理 JWT 令牌。

安装

使用 go get 命令安装此包:

go get github.com/yourusername/jwt_tools

导入

在你的代码中导入此包:

import "github.com/yourusername/jwt_tools"

使用

创建 TokenBuilder

首先,创建一个 JwtConfig 实例并初始化 TokenBuilder

config := jwt_tools.JwtConfig{
    SecretKey:     "your-secret-key",
    SigningMethod: jwt.SigningMethodHS256,
    ExpireTime:    time.Hour * 24, // 令牌过期时间为24小时
}

tokenBuilder := jwt_tools.NewTokenBuilder(config)

设置元数据

设置令牌的元数据:

meta := map[string]any{
    "user_id": 12345,
    "role":    "admin",
}

tokenBuilder.SetMeta(meta)

生成令牌

生成 JWT 令牌:

token, err := tokenBuilder.GenerateToken()
if err != nil {
    fmt.Println("生成令牌失败:", err)
    return
}

fmt.Println("生成的令牌:", token)

验证令牌

验证 JWT 令牌:

tokenBuilder.SetToken(token)
err = tokenBuilder.VerifyToken()
if err != nil {
    fmt.Println("验证令牌失败:", err)
    return
}

fmt.Println("令牌验证成功, 元数据:", tokenBuilder.GetMeta())

注册验证函数

你可以注册一个自定义的验证函数来进一步验证元数据:

validateFunc := func(meta map[string]any) error {
    if meta["role"] != "admin" {
        return fmt.Errorf("用户角色无效")
    }
    return nil
}

tokenBuilder.RegisterValidateFunc(validateFunc)

完整示例

以下是一个完整的示例,展示如何生成和验证 JWT 令牌:

package main

import (
    "fmt"
    "github.com/yourusername/jwt_tools"
    "github.com/golang-jwt/jwt/v4"
    "time"
)

func main() {
    config := jwt_tools.JwtConfig{
        SecretKey:     "your-secret-key",
        SigningMethod: jwt.SigningMethodHS256,
        ExpireTime:    time.Hour * 24,
    }

    tokenBuilder := jwt_tools.NewTokenBuilder(config)

    meta := map[string]any{
        "user_id": 12345,
        "role":    "admin",
    }

    tokenBuilder.SetMeta(meta)

    token, err := tokenBuilder.GenerateToken()
    if err != nil {
        fmt.Println("生成令牌失败:", err)
        return
    }

    fmt.Println("生成的令牌:", token)

    tokenBuilder.SetToken(token)
    err = tokenBuilder.VerifyToken()
    if err != nil {
        fmt.Println("验证令牌失败:", err)
        return
    }

    fmt.Println("令牌验证成功, 元数据:", tokenBuilder.GetMeta())
}

# Functions

NewTokenBuilder 创建一个新的 TokenBuilder 实例.

# Structs

JwtConfig 包含 JWT 相关的配置.
TokenBuilder 用于构建和管理 JWT 令牌.

# Type aliases

ValidMethod 是一个函数类型,用于验证元数据.