【发布时间】:2016-05-20 01:33:04
【问题描述】:
我正在尝试在 require 行中初始化 SAML 策略。像这样的:
var myStrat = new require('passport-something').Strategy(
{ .... }
);
passport.use('something', myStrat);
但我得到了错误:
.../passport/lib/authenticator.js:54
if (!name) { throw new Error('Authentication strategies must have a name'); }
^
Error: Authentication strategies must have a name
at Authenticator.use ...
或TypeError: Cannot read property 'name' of undefined at Authenticator.use(如果未定义自定义策略名称):passport.use(myStrat);
.
我有过这样的经历(有效):
var mySomething = require('passport-something');
var myStrat = new mySomething.Strategy(
{ .... }
);
passport.use(myStrat);
但我希望更改它,因为稍后我需要调用 passport-saml 的 Stragety.generateServiceProviderMetadata() 函数。
这(我认为)意味着我需要一个指向新 Strategy 实例的变量。
我知道这没什么大不了的,只是想让这个特定策略的代码看起来更符合其余部分,如果可以的话。都是这样的:
var GoogleStrat = require( 'passport-google-oauth2' ).Strategy;
passport.use('google', new GoogleStrat(
....
));
【问题讨论】:
标签: javascript node.js passport.js saml