首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CORS策略已阻止XMLHttpRequest - https://openid-connect-eu.onelogin.com/oidc/token

CORS策略已阻止XMLHttpRequest - https://openid-connect-eu.onelogin.com/oidc/token
EN

Stack Overflow用户
提问于 2019-05-22 18:07:30
回答 1查看 1.2K关注 0票数 0

我正在设置onelogin,我来到了这个步骤,我必须用第一个GET请求(https://developers.onelogin.com/openid-connect/api/authorization-code-grant)中的给定代码再发送一个POST请求。

他们说我必须发送POST请求到这个URL https://.onelogin.com/oidc/token,而我发送的请求是Angular 7。

代码语言:javascript
复制
    const headers = new HttpHeaders({
      'Content-Type': 'application/x-www-form-urlencoded',
      'Authorization': `Basic <base64 encoded ${environment.clientId}:${environment.clientSecret}`
    });
    const options = {
      headers: headers
    };
    const body = {
      grant_type: 'authorization_code',
      code: code,
      redirect_url: this.getCallbackURL(),
      client_id: environment.clientId,
      client_secret: environment.clientSecret
    };
    return this.httpClient.post('https://openid-connect-eu.onelogin.com/oidc/token', body, options).toPromise();

但是我得到了这个错误:

CORS策略阻止了从源'https://my-site-name.com‘在'https://openid-connect-eu.onelogin.com/oidc/token’对XMLHttpRequest的访问:对印前检查请求的响应未通过访问控制检查:请求的资源上不存在' Access - control -Allow- origin‘标头。

注意:替换为openid-connect-eu,因为我在文档中描述的欧盟。

EN

回答 1

Stack Overflow用户

发布于 2019-05-24 02:33:04

Javascript禁止在浏览器级别对其他域进行POST调用,除非它们被服务明确允许(出于安全原因,OneLogin不允许这样做)

我要补充的是,通过Javascript执行此身份验证流是不安全的,因为任何人都可以从您的代码中截获clientID和Secret。

对于javascript应用程序,我建议使用隐式OIDC流,文档如下:

https://developers.onelogin.com/openid-connect/api/id-token

OneLogin也有这样的示例代码:

https://github.com/onelogin/onelogin-oidc-node/tree/master/2.%20Implicit%20Flow

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56254354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档