Skip to content

authok/authok-go

Repository files navigation

Authok 的 Go SDK

GoDoc Go Report Card Release License Build Status Codecov FOSSA Status

📚 文档 • 🚀 入门指南 • 💬 反馈


文档

  • Godoc - 请查看 Go SDK 文档以了解详情。
  • 管理API 文档 - 请浏览 Authok 管理 API,并了解与此 SDK 交互的方式。
  • 文档站点 — 请浏览我们的文档站点并了解更多关于 Authok 的信息。
  • 示例 - 关于 SDK 使用的更多示例。

入门指南

要求

该库遵循与Go相同的支持政策。当前正在积极支持最近的两个重要版发布的Go版本,如果有兼容性问题将会进行修复。尽管旧版本的Go也许仍能运行,但我们将不会积极测试和修复这些旧版本与库的兼容性问题。

  • Go 1.19+

安装步骤

go get github.com/authok/authok-go

使用说明

package main

import (
	"log"

	"github.com/authok/authok-go"
	"github.com/authok/authok-go/management"
)

func main() {
	// 从您的 Authok 应用 Dashboard 获取这些信息。
  // 应用程序需要授权为Machine To Machine才能请求Authok Management API的访问令牌,
  // 具有所需的权限(作用域)。
	domain := "example.authok.com"
	clientID := "EXAMPLE_16L9d34h0qe4NVE6SaHxZEid"
	clientSecret := "EXAMPLE_XSQGmnt8JdXs23407hrK6XXXXXXX"

	// 使用域名、客户端ID和客户端秘钥初始化一个新的客户端。
  // 或者,您可以指定一个访问令牌:
  // `management.WithStaticToken("token")`
	authokAPI, err := management.New(
		domain,
		management.WithClientCredentials(clientID, clientSecret),
	)
	if err != nil {
		log.Fatalf("failed to initialize the authok management API client: %+v", err)
	}

// 现在我们可以与Authok Management API进行交互了。
// 例如:创建一个新的 client。
	client := &management.Client{
		Name:        authok.String("My Client"),
		Description: authok.String("Client created through the Go SDK"),
	}

  // 传入的 client 将会从响应中获取实例数据。
  // 这意味着,在此请求之后,我们可同一个 client 对象中访问 clientID。
	err = authokAPI.Client.Create(client)
	if err != nil {
		log.Fatalf("failed to create a new client: %+v", err)
	}

  // 使用getter函数来安全地访问字段,避免由空指针引起的宕机问题。
	log.Printf(
		"Created an authok client successfully. The ID is: %q",
		client.GetClientID(),
	)
}

频率限制

Authok 管理API对所有API客户端都实施速率限制。当达到限制时,SDK将在后台处理它, 当限制被解除时,SDK将自动重新尝试API请求。

注意事项 SDK 不能防止 http.StatusTooManyRequests 错误,它将根据 X-Rate-Limit-Reset 头部信息的剩余秒数进行限速控制。

反馈

贡献信息

我们欢迎您对该仓库进行反馈及贡献!在开始之前,请先阅读以下内容:

发起问题

如需提供反馈或报告错误,请在我们的问题跟踪器上发起一个问题。

漏洞报告

请不要在公共的 Github 问题跟踪器上报告安全漏洞。责任披露计划详细说明了披露安全问题的过程。


Authok Logo

Authok 是一款易于实现、适应性强的身份验证和授权平台。
了解更多请访问 为什么选择 Authok?

该项目基于 MIT 许可证获得授权。详细信息请参阅 LICENSE 文件。

About

Authok 管理 API 的 Go SDK

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages