2025/03/27 16:48:20
部署 Token 服务器
更新时间
2025/03/27 16:48:20
Token 需要在你的服务端部署生成。当客户端发送请求时,服务端部署的 Token Generator 会生成相应的 Token,再发送给客户端。本文展示如何为 AccessToken2 在服务端部署一个 RTM Token 生成器。
前提条件
开始前,请确保你的项目或使用的声网产品满足如下条件:
-
Golang 1.14 以上版本,GO111MODULE 设置为开启。
信息如果你使用的是 Go 1.16 及以上版本,GO111MODULE 已默认开启。详见 New module changes in Go 1.16。
实现部署 Token 服务器
本节展示如何使用 Golang 在你的本地设备上搭建并运行一个 Token 服务器,生成并提供 Token。
信息
此示例服务器仅用于演示,请勿用于生产环境中。
-
创建一个
server.go
文件,然后贴入如下代码。将其中的<Your App ID>
和<Your App Certificate>
替换为你的 App ID 和 App 证书。 -
go.mod
文件定义导入路径及依赖项。运行如下命令来为你的 Token 服务器创建go.mod
文件:Shell$ go mod init sampleServer
-
运行如下命令行安装依赖:
Shell$ go get
-
运行如下命令行启动服务器:
Shell$ go run server.go
信息
如果你需要生成一个同时具备 RTC 和 RTM 权限的 Token,请参考如何生成具备 RTC 和 RTM 权限的 Token?。
参考
AccessToken2 生成器代码
声网在 GitHub 上提供一个开源的 AgoraDynamicKey 仓库,支持使用 C++、Java、Go 等语言在你自己的服务器上生成 Token。
语言 | 算法 | 核心方法 | 示例代码 |
---|---|---|---|
C++ | HMAC-SHA256 | buildToken | RtmTokenBuilder2Sample.cpp |
Go | HMAC-SHA256 | buildToken | sample.go |
Java | HMAC-SHA256 | buildToken | RtmTokenBuilder2Sample.java |
PHP | HMAC-SHA256 | buildToken | RtmTokenBuilder2Sample.php |
Python 2 | HMAC-SHA256 | buildToken | RtmTokenBuilder2Sample.py |
Python 3 | HMAC-SHA256 | buildToken | RtmTokenBuilder2Sample.py |
BuildToken API 参考
本节介绍生成 AccessToken2 的 API 参数和描述。以 Golang 为例:
Go
func BuildToken(appId string, appCertificate string, userId string, expire uint32) (string, error) {
token := accesstoken.NewAccessToken(appId, appCertificate, expire)
serviceRtm := accesstoken.NewServiceRtm(userId)
serviceRtm.AddPrivilege(accesstoken.PrivilegeLogin, expire)
token.AddService(serviceRtm)
return token.Build()
}
参数 | 描述 |
---|---|
appId | 你在声网控制台创建项目时生成的 App ID。 |
appCertificate | 你的 App 证书。 |
userId | 用户 ID,用于标识用户或设备。为区分各用户和设备,你需要确保 userId 全局唯一,并且在用户或设备的生命周期内保持不变。 |
expire | Token 的有效时长(秒),最长有效期为 24 小时。 |