2015-10-21 6 views
0

Я работаю над добавлением torii для аутентификации через linkedin.Ember linkedin api auth token issue

Я могу получить код авторизации правильно, но возникают проблемы, чтобы получить маркер доступа следующей этого официального учебника:

Если я следую за этот вариант, я получаю следующее сообщение об ошибке:

XMLHttpRequest не может load https://linkedin.com/uas/oauth2/accessToken?grant_type=authorization_code&c ... & redirect_uri = REDIRECT_URI & client_id = CLIENT_ID & client_secret = CLIENT_SECRET. No 'Заголовок-Access-Control-Allow-Origin' присутствует на запрошенном ресурсе. Поэтому Origin 'my-host.com:4200' не допускается.

linkedInAccessToken: function(authenticationCode){ 
return new Ember.RSVP.Promise(function (resolve, reject) { 
    Ember.$.ajax({ 
     type: "GET",    
     url: "https://linkedin.com/uas/oauth2/accessToken?grant_type=authorization_code&code="+ authenticationCode +"&redirect_uri=REDIRECT_URI&client_id=CLIENT_ID&client_secret=CLIENT_SECRET",     
     success: function (response) { 
      console.log("ACCESS_TOKEN" + data.access_token); 
      resolve(data); 
     }, 
     error: function (request, textStatus, error) { 
      console.log(error); 
      reject(error); 
     } 
    }); 
}); 

},

Если я следую за этот другой вариант, я получаю эту ошибку:

Отказался выполнить скрипт из 'https://linkedin.com/uas/oauth2/accessToken?grant_type=authorization_code&c ... llback & обратного вызова = jQuery1113038602466485463083_1445461451847 & _ = 1445461451848', потому что его Тип MIME ('application/json') не является исполняемым, а строгая проверка типа MIME включена.

linkedInAccessToken: function(authenticationCode){ 
    return new Ember.RSVP.Promise(function (resolve, reject) { 
     Ember.$.ajax({ 
      type: "GET",    
      url: "https://linkedin.com/uas/oauth2/accessToken?grant_type=authorization_code&code="+ authenticationCode +"&redirect_uri=REDIRECT_URI&client_id=CLIENT_ID&client_secret=CLIENT_SECRET&callback=jsonpcallback", 
      dataType: 'jsonp', 
      success: function (response) { 
       console.log("ACCESS_TOKEN" + data.access_token); 
       resolve(data); 
      }, 
      error: function (request, textStatus, error) { 
       console.log(error); 
       reject(error); 
      } 
     }); 
    }); 
    }, 
    jsonpcallback: function(data){ 

    }, 

Этот последний вариант возвращает JSON на вкладке сети, но из-за этой проблемы я не в состоянии обработать.

LinkedIn OAuth2 возвращает только json, поэтому у меня проблема с использованием jsonp. С другой стороны, это тоже не корс, вот почему у меня проблема на первом примере.

У вас есть идея помочь мне решить эту проблему?

Спасибо :)

ответ

1

У меня была эта проблема на днях. Если вы авторизуетесь через torii и API, связанный с oauth linkedin, вам нужно передать код авторизации на свою заднюю часть и позволить ему иметь дело с заменой.

Если вы не используете API JavascriptSDK со ссылкой, они не разрешают запросы кросс-origin.