Аутентификация навыка Cortana

Я включил подключенную службу в своем канале Cortana (Microsoft) и получил токен для платформы BOT. Теперь я хочу получить данные пользователя из токена, используя зарегистрированный идентификатор клиента и секрет.

Пример кода в рамках BOT:

var authInfo = ((Activity)context.Activity).Entities.FirstOrDefault(e => e.Type.Equals("AuthorizationToken"));
            var token = authInfo.Properties["token"].ToString();

есть идеи?


person user3527063    schedule 14.03.2018    source источник


Ответы (1)


Проверьте BotAuth. Вы можете получить токен, выбрав провайдера:

const botauth = require("botauth");
const DropboxOAuth2Strategy = require("passport-dropbox-oauth2").Strategy;

...

 // Initialize with the strategies we want to use
var auth = new botauth.BotAuthenticator(server, bot, {
    secret : "something secret",
    baseUrl : "https://" + WEBSITE_HOSTNAME }
);

// Configure the Dropbox authentication provider using the passport-dropbox strategy
auth.provider("dropbox",
    function(options) {
        return new DropboxOAuth2Strategy(
            {
                    clientID : DROPBOX_APP_ID,
                    clientSecret : DROPBOX_APP_SECRET,
                    callbackURL : options.callbackURL
            },
            function(accessToken, refreshToken, profile, done) {
                profile.accessToken = accessToken;
                profile.refreshToken = refreshToken;
                done(null, profile);
            }
        );
    }
);

Если вы просто хотите получить имя пользователя и идентификатор, вы можете получить его из userData:

UserInfo : { "Name": { "GivenName": "XYZ", "FamilyName": "ABC" }, "Id": "[email protected]" }

https://github.com/Microsoft/BotBuilder/issues/3242

person Fracisco Ponce Gomez    schedule 15.03.2018