我需要阿里云的某台服务器给客户端下发百度语音识别sdk的access_token, 这个token只给有权限的角色下发. 我可以让客户端上传session, 然后在阿里云的服务器用这个session登录, 然后检查权限再下发吗?
这样符合设计规范吗? 还是有其他更建议的解决方案

session token 的作用是让 LeanCloud 服务端识别客户端的身份。向 LeanCloud 以外的第三方传递 session token 会增大安全风险,因为有了 session token 就能直接以相应用户的身份调用 LeanCloud 的 API。

可以考虑这样设计来避免将 session token 传递到外部:

  1. 在阿里云的服务器里存放 LeanCloud 应用的 Master Key;
  2. 需要为用户请求百度语音识别 SDK 的 access_token 时,把用户的 objectId 传递给阿里云的服务器;阿里云的服务器使用 Master Key 向 LeanCloud 发送请求,检查用户是否有权限。
1 人赞了这个帖子.

如果使用object, 有个问题是objectId无法修改.
在下面这种情况下:

我们发现某个用户因为被窃取而频繁请求access_token. 可能该用户的密码泄露或者该用户自己就是恶意用户.
如果使用的是session token, 此时我可以让该用户修改密码来更新session_token以重新获取有效的access_token.
如果使用objectId则只能将该用户永久封禁了

换句话说,当我接收到了一个带着objectId来的请求, 只能证明这个objectid有权限. 但是无法证明来请求的这个人真的就是这个objectid对应的User.
因为objectId里没有登录状态