github.com/aacfactory/fns@v1.2.86-0.20240310083819-80d667fc0a17/docs/authorizations_zh.md (about) 1 # 认证 2 3 --- 4 5 Http 认证 6 HTTP授权请求标头可用于提供凭据,用于向服务器验证用户代理,从而允许访问受保护的资源。 7 阅读 [Authorization](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization) 获取更多信息。 8 9 ## 组件 10 ### 编码器 11 `DEFAULT` 编码器是 `fns` 内置的, 配置如下 12 ```yaml 13 authorizations: 14 encoding: 15 expireMinutes: 1440 16 ``` 17 `JWT` 编码器是 `fns-contrib` 提供的, 阅读 [doc](https://github.com/aacfactory/fns-contrib/tree/main/authorizations/encoding/jwt) 获取更多信息。 18 ### 存储器 19 `Discard` 不会存储用户令牌, 所以 `revoke` 接口是不会有响应的。 20 21 `Redis`, `Postgres` 和 `MYSQL` 是由 `fns-contrib` 提供,阅读 [doc](https://github.com/aacfactory/fns-contrib/tree/main/authorizations/store) 获取更多信息。 22 23 ## 接口 24 编码是通过用户标识生成令牌。 25 ```go 26 token, encodingErr := authorizations.Encode(ctx, "userId", userAttributes) 27 ``` 28 验证当前请求上下文,如 `@authorization`值为真,则会自动验证。 29 ```go 30 verifyErr := authorizations.Verify(ctx) 31 ``` 32 吊销令牌。 33 ```go 34 revokeErr := authorizations.Revoke(ctx, "tokenId") 35 ``` 36 吊销用户的所有令牌。 37 ```go 38 revokeErr := authorizations.RevokeUserTokens(ctx, "userId") 39 ```