Ember领英api认证令牌问题

Ember linkedin api auth token issue

本文关键字:令牌 问题 认证 api 领英 Ember      更新时间:2023-09-26

我一直在使用torii插件通过linkedin进行身份验证。

我能够正确地获得授权代码,但是在获得访问令牌时遇到麻烦,下面是这个官方教程:

如果我遵循这个选项,我得到以下错误:

XMLHttpRequest无法加载https://linkedin.com/uas/oauth2/accessToken?grant_type=authorization_code&c...&redirect_uri=REDIRECT_URI&client_id=CLIENT_ID&client_secret=CLIENT_SECRET。请求的资源上没有'Access-Control-Allow-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&callback=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'有问题。另一方面,它也不是正确的,这就是为什么我在第一个例子中遇到问题。

你有什么办法能帮我解决这个问题吗?

谢谢:)

前几天我遇到了这个问题。如果你是通过torii和oauth linkedin API进行授权,你需要将授权代码传递到后端,并让它处理交换。

除非你在linkedin上使用JavascriptSDK API,否则他们不允许跨源请求。