Skype Web SDK Oauth2 авторизация неверный ресурс - PullRequest
0 голосов
/ 13 июня 2018

Я пытаюсь интегрировать Skype для бизнеса с моим приложением с помощью Skype Web SDK, но не могу даже завершить авторизацию.Это мой код, основанный на коде из этого видео: https://youtu.be/EyHL1HH9FzE?t=20m20s

public connect() {
    var client_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";

    if (!/^#access_token=/.test(location.hash)) {
        console.log("no token");

        location.assign(
            "https://login.microsoftonline.com/common/oauth2/authorize"
            + "?response_type=token"
            + "&client_id=" + client_id
            + "&redirect_uri=" + location.href
            + "&resource=https://webdir.online.lync.com"
        );
    } else {
        console.log("token present");
    }
}

Я перенаправлен на страницу Microsoft, где я могу войти в систему, однако затем меня перенаправляют обратно в мое приложение сследующий URL: http://myapp/ui/index.html#error=invalid_resource&error_description=AADSTS50001%3a+Resource+identifier+is+not+provided.%0d%0aTrace+ID%3a+0efb74b9-6063-4046-9710-836d43641d00%0d%0aCorrelation+ID%3a+7fcbee4c-e543-4b00-a485-152779f346bb%0d%0aTimestamp%3a+2018-06-13+13%3a52%3a30Z

Таким образом, он говорит, что ошибка

недопустим, и что идентификатор ресурса не указан.

Iскопировал ресурсную часть из видео и видел ее в нескольких других уроках

+ "&resource=https://webdir.online.lync.com"

В Azure я установил oauth2AllowImplicitFlow в true, к которому также добавлены делегированные разрешения для Skype для бизнеса Onlineприложение.

1 Ответ

0 голосов
/ 14 июня 2018

неверный ресурс и идентификатор ресурса не указан.

Я также могу воспроизвести проблему, о которой вы упоминали, если я использую location.assign .Кажется, что CORS предотвращают это.Это не связано с resource=https://webdir.online.lync.com

Обратите внимание, что настройки безопасности, такие как CORS , могут препятствовать эффективному выполнению этого действия.

Решение:

window.location.href = href

Пожалуйста, попробуйте использовать следующий код, тогда он работает правильно на моей стороне.Для получения дополнительной информации, пожалуйста, обратитесь к этой статье .

 var client_id = "xxxx"
 window.sessionStorage.setItem('client_id', client_id);
 var href = 'https://login.microsoftonline.com/common/oauth2/authorize?response_type=token&client_id=';
 href += client_id + '&resource=https://webdir.online.lync.com&redirect_uri=' + window.location.href;
 window.location.href = href;
...