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  ```