首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >键斗篷-角:被CORS策略阻塞:请求的资源上没有“访问控制-允许-源”头。

键斗篷-角:被CORS策略阻塞:请求的资源上没有“访问控制-允许-源”头。
EN

Stack Overflow用户
提问于 2020-08-03 10:30:36
回答 2查看 2.8K关注 0票数 2

我正在开发一个网络应用程序,我使用角作为前端和钥匙斗篷的安全。

我在角边使用以下软件包:

keycloak-js@10.0.1

keycloak-angular@8.0.1

在前端(角应用程序),我试图使用以下服务检索用户详细信息:

代码语言:javascript
复制
import { Injectable } from '@angular/core';
import { KeycloakService } from 'keycloak-angular';

@Injectable({
  providedIn: 'root'
})
export class JwtDecoderService {

  public profile;      
  
  getUserProfile(){
  
   this.keycloakService.loadUserProfile().then(x => this.profile = x)
 
  }           
  constructor(public keycloakService: KeycloakService) {}        
}

正如我所想的那样,对loadUserProfile()的调用将向keycloak服务器的客户端(帐户)发起一个GET请求。

我得到一个CORS错误消息作为响应,请参阅下面:

我尝试添加localhost:4200作为所使用的客户端的Web,在角部分上配置为我的客户端的客户机是newClient,但是上面的请求是针对帐户客户端的。

最后,我将*作为所有涉及newClient和帐户的客户端的web源。

这是我的客户名单:

正如我所提到的,这是我用角表示的客户机:

代码语言:javascript
复制
export const environment = {
  production: false,
  keycloakConfig: {
    clientId: 'newClient',
    realm: 'SportEmploy',
    url: 'http://localhost:8083/auth'
  }
};

newClient配置: 1。

帐户客户端配置: 1。

我尝试将两个客户端的WebOrigins ( http://localhost:4200/ http://localhost:4200 * +和*)的变体放入其中,这一切都不起作用。

这就是我如何在角度侧面启动钥匙斗篷:

代码语言:javascript
复制
import {KeycloakService, KeycloakOptions} from 'keycloak-angular'
import { environment } from './environments/environment'

export function initializer(keycloak: KeycloakService): () => Promise<any> {

    const options: KeycloakOptions = {
      
        config: environment.keycloakConfig
    };

    return (): Promise<any> => keycloak.init(options);

}

有什么想法,我的钥匙斗篷配置可能有什么问题吗?

EN

回答 2

Stack Overflow用户

发布于 2021-06-22 13:19:17

我知道这是一个老问题,但考虑到我有同样的问题,我找到了解决办法,我想在这里分享多年。

如果将角色account/viewProfile设置为用户像这样,则cors错误将消失。

我为这个fyi开了一个JIRA https://issues.redhat.com/browse/KEYCLOAK-18523

票数 2
EN

Stack Overflow用户

发布于 2020-08-03 10:42:21

对Keycloak使用隐式流而不是默认授权代码。

代码语言:javascript
复制
keycloak.init({
...
initOptions: {
      flow: 'implicit',
}
}

和公共访问类型选项

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

https://stackoverflow.com/questions/63227787

复制
相关文章

相似问题

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