Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dxvgef/token
Go语言的访问令牌开发包,可用于 session 或 access token 两种模式的应用场景
https://github.com/dxvgef/token
access-control access-management access-token authentication session token-authetication
Last synced: 3 months ago
JSON representation
Go语言的访问令牌开发包,可用于 session 或 access token 两种模式的应用场景
- Host: GitHub
- URL: https://github.com/dxvgef/token
- Owner: dxvgef
- Created: 2018-02-08T08:49:10.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2024-09-20T14:10:28.000Z (4 months ago)
- Last Synced: 2024-10-02T09:24:21.326Z (4 months ago)
- Topics: access-control, access-management, access-token, authentication, session, token-authetication
- Language: Go
- Homepage:
- Size: 53.7 KB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# dxvgef/token
`Go`语言的访问令牌开发包,可用于 session 或 access token 两种模式的应用场景
使用`ULID`算法生成令牌字符串,和`Redis`协议兼容的服务端存储令牌数据
access token 支持 HASH 类型的荷载内容
## 应用场景
### session 模式
此场景只需使用 access token,如果 access token 到期,可选择以下两种方案:
- 销毁已过期的,并生成新的 access token
- 刷新已过期的 access token### token 模式
此场景需要先生成 refresh token,然后使用它的`Exchange()`方法来兑换一个新的 access token
`Exchange()`方法会自动销毁它上次生成的 access token如果 access token 到期,可以用以下两种方案获得新的 access token:
1. 使用 refresh token 兑换新的 access token
2. 销毁旧的 refresh token,然后生成新的 refresh token 并兑换新的 access token推荐使用第 2 种方案,防止 refresh token 泄露造成的滥用
## 方法列表
### Token.
- `New()` 创建 token 实例,使用了`github.com/redis/go-redis`的`*Client`类型
- `MakeAccessToken()` 生成 access token
- `ParseAccessToken()` 将字符串解析成 access token
- `DestroyAccessToken()` 销毁指定的 access token
- `MakeRefreshToken()` 生成 refresh token
- `ParseRefreshToken()` 将字符串解析成 refresh token
- `DestroyRefreshToken()` 销毁指定的 refresh token,并自动销毁其生成的 access token### AccessToken.
- `Value()` 获取 token 的字符串
- `Get()` 获取荷载内容中指定键名的值
- `GetAll()` 获取所有荷载内容
- `Set()` 设置荷载内容中指定键名的值
- `CreatedAt()` 获取创建时间
- `ExpiresAt()` 获取到期时间
- `Refresh()` 刷新生命周期
- `Destroy()` 销毁### RefreshToken.
- `Value()` 获取 token 的字符串
- `AccessToken()` 获取其生成的 access token 字符串
- `ExpiresAt()` 获取到期时间
- `Exchange()` 兑换新的 access token,旧的将自动销毁
- `Destroy()` 销毁,并自动销毁其生成的 access token