로그인을 통해 인증 된 클라이언트가 있습니다. 요청할 때마다 해당 userID와 토큰을 봇에 전달해야합니다. 이 정보가 필요한 내 서버 웹 API를 때리는 데 사용할 수 있습니다. 헤더에 들어있는 인증을 얻으려고했지만 비밀을 전달합니다. 헤더에 id와 token을 붙일 수 있다면 저에게 도움이 될 것입니다.어떻게 내 사용자 ID 토큰을 Microsoft Bot Framework의 직력을 통해 내 클라이언트에서 직접 보낼 수 있습니까?
this.botConnection = new BotChat.DirectLine({
secret: 'yNy9g1Mok1g.cwA.fyks.fghsth.rcKOQUIu558-TI',//params['mysecret'],
token: params[this.token], //I think I should pass it here but this does not work.
//domain: params['ngroktunneledurl.com/api/messages'],
webSocket: params['webSocket'] && params['webSocket'] === "true" // defaults to true,
});
그런 다음 ... 메시지 컨트롤러에서 토큰을 검색하려고 봇
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
if (activity.Type == ActivityTypes.Message)
{
var keyValuePair = Request.Headers.FirstOrDefault(h => h.Key.Equals("Authorization"));
token = keyValuePair.Value.First().Substring(7);
await Conversation.SendAsync(activity,() => new Dialogs.RootDialog(token));
}
else
{
HandleSystemMessage(activity).ConfigureAwait(false);
}
var response = Request.CreateResponse(HttpStatusCode.OK);
return response;
}
인증은 우리의 로봇을 식별하는 비밀을 제공합니다.
나는 모든 사용자 응답에서 ChanelData가 내 봇에 데이터를 보낼 수있는 방법을 찾지 못했습니다. 이것이 내가 봇에 요청할 때마다 사용자를 인증해야한다는 것이 주요 문제입니다. 나는 DirectLine을 사용하고있다. –