2016-10-03 7 views
0

Я пытаюсь создать приложение с помощью Skype для бизнес-веб-SDK.Skype для бизнеса web sdk 401 Неавторизованный при попытке войти в систему

Вот часть кода авторизации:

var config = { 
    apiKey: 'a42fcebd-5b43-4b89-a065-74450fb91255', // SDK 
    apiKeyCC: '9c967f6b-a846-4df2-b43d-5167e47d81e1' // SDK+UI 
}; 

var Skype; 
var app; 
console.log(Skype); 

Skype.initialize({ apiKey: config.apiKey }, function(api) { 
    window.skypeWebAppCtor = api.application; 
    window.skypeWebApp = new api.application(); 
    Application = api.application; 
    app = new Application(); 
    console.log("app", app); 
    skypeSignIn(); 
    window.skypeWebApp.signInManager.state.changed(function(state) { 
     console.log("in",state); 
    }); 
}, function(err) { 
    console.log(err); 
    console.log("cannot load the SDK"); 
}); 

var skypeSignIn = function() { 
    app.signInManager.signIn({ 
     "client_id": "my-GUID", // GUID obtained from Azure app registration. 
     "origins": ["https://webdir.online.lync.com/autodiscover/autodiscoverservice.svc/root"], 
     "cors": true, 
     "redirect_uri": 'https://freshservice.com', 
     "version": 'freshservice skype for business integration' 
    }).then(function() { 
     alert('Logged in!'); 
    }); 

Когда я пытаюсь выше код дает ошибку 401 на происхождение URL -

GET https://webdirin1.online.lync.com/Autodiscover/AutodiscoverService.svc/root/oauth/user 401 (Unauthorized) 

Как это можно исправить?

ответ

0

Прежде всего, вам необходимо получить разрешение на использование вашего приложения с помощью Azure Active Directory. Это вернет токен доступа, который затем отправляется с каждым запросом. Без этого токена доступа все запросы будут неавторизованными. Чтобы получить токен доступа, вы можете ссылаться на этот ресурс, как Set up Skype Web SDK Online.

После авторизации вашего приложения вы можете использовать Skype.Initialize и SignIn. Это фактически подпишет вас в Skype For Business.

Помимо этого, если вы уже авторизованы, получение несанкционированного ответа с сервера является нормальным. Поскольку приложение сначала пытается войти в систему. Чем если сервер вернется неавторизованный, он затем инициирует процесс авторизации.

+0

Где этот токен доступа использовать? Я не могу найти ссылки на использование токена доступа. –

+0

@SoorajChandran Вам не нужно беспокоиться об использовании токена доступа. Skype Web SDK позаботится об этом и автоматически присоединяет токен доступа с каждым запросом. – Shahzad

+0

Мы смогли войти в систему через SDK. Однако мы пытаемся сделать то же самое с помощью токена доступа, чтобы токен мог сохраняться, и пользователю не нужно каждый раз входить в систему. Возможно ли это? –

1

В приведенном выше фрагменте кода отсутствует код для перенаправления пользователя в Azure Active Directory (AAD), чтобы пользователь мог ввести свои учетные данные. Это нормально, если пользователь уже зарегистрировался в браузере, но в противном случае вам нужно будет перенаправить на AAD, разрешите пользователю входить в систему, и как только AAD перенаправляет обратно в ваше приложение, вызовите метод app.signInManager.signIn.

Заканчивать эту страницу для получения более подробной информации: https://msdn.microsoft.com/en-us/skype/websdk/developwebsdkappsforsfbonline

Убедитесь, что перенаправление URI, которые вы предоставляете сконфигурирован в приложении АСРА в качестве действительного ответа URL.

Во время процесса входа вы увидите 401s. Каждый раз, когда это происходит, sdk перенаправляет на AAD, чтобы получить токен. Если пользователь уже подписал, тогда AAD должен перенаправить обратно к предоставленному uri с токеном доступа в свойстве location.hash.

+0

Я сделал запрос OAuth и получил токен доступа. Как я могу использовать этот токен в заголовке запроса, чтобы выполнить запрос api через sdk и подписать пользователя. Есть ли документация об этом? –

 Смежные вопросы

  • Нет связанных вопросов^_^