javascript - 具有不同配置的相同 Passport js 策略 (SAML)

标签 javascript node.js passport.js nestjs passport-saml

我正在尝试使用 Okta 作为身份提供者和 passport-saml 库在我的 Nest.js 应用程序中创建 SSO。我阅读了 Nest authentication 和 passport-saml 的文档。我对示例的理解没有问题,但我确实需要使用具有不同配置的 SAML 策略,这取决于 POST api/auth/saml 的请求正文值.换句话说,我有一个策略,但有不同的 入口点、颁发者、证书 我的自定义参数 登录SSOStrategy类扩展 Passport 策略类 Nest.js 的。任何想法我该如何处理?

最佳答案

我不太确定这是否是一个好方法,但是如果您愿意,您可以将类请求限定为范围并通过构造函数注入(inject)请求,然后可以访问请求对象并能够使用的新实例您的 Passport 策略每个请求。您可以使用请求传递req.whateversuper()类的构造函数。

@Injectable({ scope: Scope.REQUEST })
export class LoginSSOStrategy exends PassportStrategy(Strategy) {

  constructor(@Inject(REQUEST) request: Request, ...) {
    super({/* options matching to request.field */});
  }

  validate(/* validate params*/) {
    /* validate functionality */
  }
}

这似乎是您需要进行大量测试并确保它适用于并发请求的事情,但总的来说它至少在理论上是可行的。

关于javascript - 具有不同配置的相同 Passport js 策略 (SAML),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59249525/

相关文章:

javascript - 映射表 child 内容与 puppeteer 师

模糊的javascript检测按钮是否被按下

node.js - 如何查看nodejs中readline模块的源代码?

node.js - 如何使用 node.js 实现安全的 REST API

javascript - 在混合 php/javascript 函数中选择正确的 ' and "

javascript - 我如何加密电子邮件 ID 并将其解密回来,但字符串长度应为 30-40 。?

python - 在 Windows 上运行 Python 以获取 Node.js 依赖项

javascript - 集成 Jest 和 Rewire

passport.js - Passportjs Slack - 范围错误

node.js - Express + Passport.js : req. 用户未定义