跨ownerAccount创建Tapkey用户及授权 能否用authorization code认证?
你要的跨ownerAccount创建用户并下发授权的需求,可以使用authorization code授权方式实现,以下是具体说明:
问题根源
你当前的报错是因为默认服务端使用的客户端凭证(Client Credentials)模式获取的Bearer Token,仅对身份提供方所属的ownerAccount有操作权限,当你要操作的目标ownerAccount(持有锁的账户)和身份提供方不属于同一主体时,自然会触发权限限制。
实现逻辑
你需要让目标ownerAccount的管理员通过OAuth 2.0授权码流程,给你的服务端应用授予对应的操作权限(包含用户创建、联系人管理、授权下发相关的权限范围),通过授权码兑换到的AccessToken,就具备目标ownerAccount的对应操作权限,再用这个AccessToken调用你现有代码里的接口即可。
代码调整说明
你现有代码的请求参数不需要修改,只需要把原来的token替换为授权码流程兑换的、对应目标ownerAccount的AccessToken即可,额外需要补充的逻辑如下:
- 提前为每个目标ownerAccount完成授权码流程,按维度存储对应有效的
AccessToken/RefreshToken - 调用接口前先判断token有效期,过期用
RefreshToken刷新后再使用
注意事项
- 发起授权码流程时,需要明确申请所有业务需要的权限scope,缺少对应权限依然会请求失败
- 如果要同时对接多个不同的ownerAccount,需要按ownerAccount维度存储授权凭证,避免混用
内容的提问来源于stack exchange,提问作者Alvin Mutisya
相关产品推荐
相关产品推荐

