小编Ugo*_*ola的帖子

Angular 路由器出口 - 错误:无法匹配任何路由。网址段

我提前道歉,因为我看过几篇关于此的帖子,但尽管经过多次尝试,我仍无法解决我的问题。

我使用的是 Angular 13.3.9

我尝试使用此处所述的出口路由器:https ://angular.io/api/router/RouterOutlet

我的目标是根据html代码中不同地方的路由加载组件。

这是尝试过的最简单的代码:

路由器

const routes: Routes = [
  { path: 'challenge/pwd', component: ChallengePwd, outlet: 'challenge-pwd' },
  { path: 'identifier', component: Identifier, outlet: 'identifier' }
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }
Run Code Online (Sandbox Code Playgroud)

应用程序组件.html

<main>
    <section>
        <logo-loader></logo-loader>
        <section class="presentation">
            <router-outlet name="identifier"></router-outlet>
            <router-outlet name="challenge-pwd"></router-outlet>
        </section>
    </section>
</main>
Run Code Online (Sandbox Code Playgroud)

当我尝试访问 url http://localhost:4201/identifier 时

我收到错误:Error: Cannot match any routes. URL Segment: 'identifier'

我还尝试将出口路由封装在父组件中,如下所示:

const routes: Routes = [
  {
    path: 'oauth',
    component: MainPage, …
Run Code Online (Sandbox Code Playgroud)

router-outlet angular angular-router

8
推荐指数
1
解决办法
4万
查看次数

KeyCloak:请求的资源上不存在“Access-Control-Allow-Origin”标头

我正在使用 Angular 8.0.3 和 keycloak 6.0.1 进行前端身份验证。

问题

我设法从我的应用程序进入 keycloak 登录页面。使用我的登录详细信息登录后,出现错误:
-localhost/:1 Access to XMLHttpRequest at ' https://localhost:8080/auth/realms/pwe-realm/protocol/openid-connect/token ' from origin ' http ://localhost:4200 ' 已被 CORS 策略阻止:请求的资源上不存在 'Access-Control-Allow-Origin' 标头。
-Keycloak init failed Keycloak 初始化过程中发生错误。

请问你能帮帮我吗 ?

我的 Keycloak 配置:

1 领域:pwe-realm
2 客户端:
-pwe-api(用于我的后端)
-pwe-web(用于我的身份验证前端)

pwe-web 配置:
客户端协议:openid-connect
访问类型:public
有效重定向 Uris:http//:localhost:4200/(我也试过“*”)

我的代码(我正在使用这个库:keycloak-angular):

环境.ts:

import {KeycloakConfig} from 'keycloak-angular';

const keycloakConfig: KeycloakConfig = {
  url: 'https://localhost:8080/auth',
  realm: 'pwe-realm',
  clientId: 'pwe-web'
};

export const environment = {
  production: false, …
Run Code Online (Sandbox Code Playgroud)

authentication xmlhttprequest keycloak keycloak-services angular

7
推荐指数
3
解决办法
2万
查看次数

明白如何初始化keycloak-angular服务?(bearerExcludedUrls 等...)

我正在使用 Angular 8.0.3、keycloak 8.0.0 和keycloak-service 7.0.1

问题

我设法从我的 angular 应用程序配置了身份验证。所以每次我在没有授权标头的情况下继续我的应用程序时,我都会被重定向到 keycloak 登录页面。

如果我想让未登录的人访问公共页面(例如“/public/cities”)而不重定向到 keycloak 登录页面,我应该使用“bearerExcludedUrIs”吗?如果是这样,我应该穿什么?如果没有,如何进行?

从更一般的角度来看,提供的服务中的keycloak初始化函数有一个initOption部分。我并不完全理解其所有属性(onLoad、token、refreshToken、idToken、timeSkew、sheckLoginIframe、checkLoginIframeInterval、responseMode、flow)的含义。如果有开悟的人愿意与我分享他的知识,可以开导我,我将不胜感激......

我的代码

我正在使用 ngDoBootstrap 来引导库并配置 keycloak-angular。在这个例子中,我试图允许所有带有正则表达式 /.*/ 的 url(但没有任何变化)。


const keycloakService = new KeycloakService();

@NgModule({
  declarations: [
    AppComponent,
    HeaderComponent,
    LoginComponent
  ],
  imports: [
    KeycloakAngularModule,
    BrowserModule,
    AppRoutingModule,
    CoreModule,
    SharedModule,
    PagesModule
  ],
  providers: [
    {
      provide: KeycloakService,
      useValue: keycloakService,
    }
  ],
  entryComponents: [AppComponent]
})
export class AppModule implements DoBootstrap {
  async ngDoBootstrap(app) {
    const { keycloakConfig } = environment;

    try {
      keycloakService.init({
        config: keycloakConfig,
        initOptions: { …
Run Code Online (Sandbox Code Playgroud)

angular-routing keycloak keycloak-services angular

5
推荐指数
1
解决办法
3746
查看次数

Nestjs:从装饰器检索请求/上下文

我正在开发一个 NestJS 项目,我试图在记录器中访问executionContext,以按请求过滤日志。

我每个可注入都有一个记录器实例,我想保留这种行为(因此可注入的范围是默认的)。

为此,我尝试创建一个装饰器,从请求中获取上下文并将其传递给子服务(如记录器中),最终获取记录器中的上下文...

我不确定是否清楚......现在,这是我的代码:

export const Loggable = () => (constructor: Function) => {
  for (const propertyName of Reflect.ownKeys(constructor.prototype)) {
    let descriptor = Reflect.getOwnPropertyDescriptor(constructor.prototype, propertyName);
    const isMethod = descriptor.value instanceof Function;
    if (!isMethod)
      continue;

    const originalMethod = descriptor.value;
    const routeArgsMetada = Reflect.getMetadata(ROUTE_ARGS_METADATA, constructor, propertyName as string);

    descriptor.value = function (...args: any[]) {
      const result = originalMethod.apply(this, args);
        //TODO : retrieve the request / contextExecution
        //TODO : pass the request / contextExecution to children functions...
      return result;
    };
    Reflect.defineProperty(constructor.prototype, …
Run Code Online (Sandbox Code Playgroud)

node.js express typescript typescript-decorator nestjs

4
推荐指数
1
解决办法
8758
查看次数