Passport.js 策略可以支持验证调用中的其他选项:
passport.authenticate('azuread-openidconnect', {
// Default passport options
failWithError: true,
successReturnToOrRedirect: '/',
// Custom option supported by the azure-ad plugin
// Type error - 'tenantIdOrName' does not exist in type 'AuthenticateOptions'
tenantIdOrName: 'common',
});
使用自定义策略支持的选项(例如tenantIdOrName
上面)会导致打字稿错误,因为它不是 此处找到AuthenticateOptions
的护照界面的一部分并在此处的签名中使用authenticate
我尝试了一些没有成功的事情
- 模块扩充,即
declare module 'passport' {...}
似乎覆盖了模块的类型而不是扩展它们(不在我的扩展中的任何东西都被视为无类型) - 合并接口即
declare namespace passport { interface AuthenticateOptions { ...new properties }}
,这似乎对authenticate
方法签名没有影响。
如何在authenticate
没有类型转换的情况下支持调用中的其他属性?