Ember linkedin api 授权令牌问题
Ember linkedin api auth token issue
我一直在使用 torii add-on 通过 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”header。因此不允许访问来源 '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){
},
网络选项卡上的最后一个选项 returns json,但由于这个问题我无法处理它。
仅限 LinkedIn OAuth2 returns json 这就是我在使用 'jsonp' 时遇到问题的原因。
另一方面,它也不是 cors,这就是为什么我在第一个例子中遇到问题。
你有什么想法可以帮我解决这个问题吗?
谢谢:)
前几天我遇到了这个问题。如果您通过 torii 和 oauth linkedin API 授权,您需要将授权码传递给您的后端并让它处理交换。
除非您将 JavascriptSDK API 与 linkedin 一起使用,否则它们不允许跨源请求。
我一直在使用 torii add-on 通过 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”header。因此不允许访问来源 '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){
},
网络选项卡上的最后一个选项 returns json,但由于这个问题我无法处理它。
仅限 LinkedIn OAuth2 returns json 这就是我在使用 'jsonp' 时遇到问题的原因。 另一方面,它也不是 cors,这就是为什么我在第一个例子中遇到问题。
你有什么想法可以帮我解决这个问题吗?
谢谢:)
前几天我遇到了这个问题。如果您通过 torii 和 oauth linkedin API 授权,您需要将授权码传递给您的后端并让它处理交换。
除非您将 JavascriptSDK API 与 linkedin 一起使用,否则它们不允许跨源请求。