阿里云语音AIGO 的 demo代码把 获取token的也封装在SDK里面了么?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
是的,阿里云语音AIGO的SDK确实将获取Token的逻辑封装在了SDK内部,从而简化了开发流程并提升了安全性。以下是详细说明:
智能语音交互SDK提供了直接获取Token的功能,用户无需手动处理复杂的认证逻辑和Token有效期管理。具体实现方式如下: - Java 示例:
AccessToken accessToken = new AccessToken(System.getenv().get("ALIYUN_AK_ID"), System.getenv().get("ALIYUN_AK_SECRET"));
accessToken.apply();
String token = accessToken.getToken(); // 获取Token
long expireTime = accessToken.getExpireTime(); // 获取Token有效期时间戳(秒)
token
是服务端分配的访问令牌,在有效期内可以重复使用。expireTime
表示Token的有效期时间戳,单位为秒。
C++ 示例: SDK还支持C++语言,用户可以通过编译示例代码来获取Token。例如:
./tokenDemo <yourAccessKeySecret> <yourAccessKeyId>
如果当前智能语音交互SDK未提供对应语言的支持,用户也可以通过阿里云公共SDK获取Token。这种方式需要调用RPC风格的API,并提供以下固定参数: - domain
: nls-meta.cn-shanghai.aliyuncs.com
- region_id
: cn-shanghai
- action
: CreateToken
- version
: 2019-02-28
成功调用后,返回的报文包含以下信息: - Id
: 分配的访问令牌Token。 - ExpireTime
: Token的有效期时间戳(秒)。
在Android SDK中,推荐通过服务端生成具有时效性的临时凭证(Token),然后下发给移动端使用。这种方式可以避免将AccessKey ID和AccessKey Secret直接暴露在客户端,从而提升安全性。
- 推荐方法:通过服务端生成Token并下发给移动端。 - 不推荐方法:直接在客户端通过AccessKey ID和AccessKey Secret获取Token,因为这种方式存在账号信息泄露的风险。
ALIYUN_AK_ID
和ALIYUN_AK_SECRET
,用于读取访问凭证。综上所述,阿里云语音AIGO的SDK确实将获取Token的逻辑进行了封装,用户只需按照文档提供的示例代码进行调用即可完成Token的获取和管理。