handleTeamsSigninVerifyState 在团队调用但响应为 501 时受到攻击

handleTeamsSigninVerifyState getting hit when teams calls but response is 501

包:"botbuilder":“^4.7.2”

我们扩展了 TeamsActivityHandler ..
class TeamsGithubBot 扩展了 TeamsActivityHandler

里面有

protected async handleTeamsSigninVerifyState(
    context: TurnContext, query: SigninStateVerificationQuery,
  ): Promise<void> 
{our code here}

当团队使用

调用我们的消息处理程序时
"name": "signin/verifyState",
    "type": "invoke",

我可以 see/debug 我们的代码被命中,但对团队调用的响应是 501 Not Implemented

关于如何调试这个的任何指示?

请升级到最新的 botbuilder 软件包(截至 2020 年 6 月为 4.9.2)

signin/verifyState 调用到达机器人时,应该调用 adapter.getUserToken 来验证魔术代码。如果有效,机器人应该发送类型为 invokeResponse 的 activity 和带有 StatusCode.OK 的值 示例代码可以在 sdk 的 OAuthPrompt:

中找到
token = await this.getUserToken(dc, code);
if (token !== undefined) {
    await dc.context.sendActivity({ type: 'invokeResponse', value: { status: 200 } });
} else {
    await dc.context.sendActivity({ type: 'invokeResponse', value: { status: 404 } });
}

此invokeResponse 将写入请求正文。如果在回合完成后在 turnState 中找不到 invokeResponse,则抛出 NotImplemented 异常。