我一直在使用 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 ”标头。因此,不允许访问 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”时遇到问题的原因。另一方面,它也不是 cors,这就是我在第一个示例中遇到问题的原因。
你有什么想法可以帮我解决这个问题吗?
谢谢 :)