refresh_token

package
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 16, 2025 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

If refresh_token is saved in postgresql's JsonField, use this package. But saving refresh_token in a separate table is better.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type RefreshToken

type RefreshToken struct {
	Token     string    `json:"refresh_token"`
	ExpiresAt time.Time `json:"expires_at"`
	IP        string    `json:"ip"`
	Platform  string    `json:"platform"`
	Browser   string    `json:"browser"`
}

['refresh_token', '过期的datetime', 'ip', '设备信息', 'Browser信息']

func (*RefreshToken) Expired

func (token *RefreshToken) Expired() bool

NotExpired 一个refresh_token是否过了有效期

type RefreshTokenConfig

type RefreshTokenConfig struct {
	Duration time.Duration // ie: time.Hour * 720
}

func (*RefreshTokenConfig) NewRefreshToken

func (cfg *RefreshTokenConfig) NewRefreshToken(ip, platform, browser string) RefreshToken

type RefreshTokens

type RefreshTokens struct {
	Tokens []RefreshToken `json:"refresh_tokens"`
}

一组refresh token的结构体,用于存在用户privateInfo上

func (*RefreshTokens) ContainsTokenString

func (tokens *RefreshTokens) ContainsTokenString(tokenString string) bool

仅判断tokens列表中的token是否包含tokenString,不判断这个token是否过期

func (*RefreshTokens) ContainsValidTokenString

func (tokens *RefreshTokens) ContainsValidTokenString(tokenString string) bool

仅判断tokens列表中的token是否包含tokenString,且判断这个token是否过期

func (*RefreshTokens) GetMarshaledTokens

func (tokens *RefreshTokens) GetMarshaledTokens() []byte

func (*RefreshTokens) GetTokenAndUpdate

func (tokens *RefreshTokens) GetTokenAndUpdate(ip, platform, browser string, config *RefreshTokenConfig) (
	refreshToken string, updated bool)

GetTokenAndUpdate 提供用户登录的ip、平台、浏览器(不做判断),获得refresh_token(string),并根据ip、平台是否相同,来更新有效的refresh_token list 此过程中,会删除过期的refresh_token。 如果删除了过期的refresh_token,或者生成了新的refresh_token,则updated返回true(老数据被改变),否则false。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL