LB4:授权提供者上下文的主体为空

问题描述

浏览授权示例文档时,我是回传的新手。

AuthorizationContext:包含调用端点,请求上下文以及预期角色和作用域的当前主体。 遵循文档中提到的相同步骤,但是在调试时,我发现AuthorizationContext.prinicpals为空。 这是授权提供者

import {
  AuthorizationContext,AuthorizationDecision,AuthorizationMetadata,Authorizer
} from '@loopback/authorization';
import {Provider} from '@loopback/core';

export class MyAuthorizationProvider implements Provider<Authorizer> {
  constructor() {}

  /**
   * @returns authenticateFn
   */
  value(): Authorizer {
    return this.authorize.bind(this);
  }

  async authorize(
    authorizationCtx: AuthorizationContext,Metadata: AuthorizationMetadata,) {
    console.log(authorizationCtx);
    const clientRole = authorizationCtx.principals[0].role;
    const allowedRoles = Metadata.allowedRoles;
    return allowedRoles?.includes(clientRole)
      ? AuthorizationDecision.ALLOW
      : AuthorizationDecision.DENY;
  }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...