0
私はノードjsの初心者ですので、事前に謝罪してください。SafariブラウザでExpress-Passportローカル認証が機能しない
app.use(express.static(__dirname + uiDir));
app.use(cookieParser('SecretKey'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
app.use(session({
secret: 'SecretKey',
resave: true,
saveUninitialized: true,
rolling:'true',
cookie:{
maxAge: 60*1000*30,
secure:true,
httpOnly: true,
}
}));
app.use(passport.initialize());
app.use(passport.session());
app.use(helmet({
frameguard: {
action: 'sameorigin'
}
}));
app.use(flash());
passport.serializeUser(function(user, done) {
done(null, user.username);
});
passport.deserializeUser(function(user, done) {
done(null, user);
});
passport.use('local',new LocalStrategy(
function(username, password, done) {
var loginqry = {
jsonrpc: '2.0',
id: 12,
method: 'call',
params: [ 'toIntergrateLater', 'users',
'authenticate',
{"username":username,
"password":password
}
]
};
BackendAuthservice.auth(loginqry,function(data){
if(data.result.error=="Wrong password"){
return done(null, false, { message: 'Incorrect username or password.' });
}
if(data.result.error=="User not found"){
return done(null, false, { message: 'User not found' });
}
else{
data.result.status = true;
return done(null,data);
}
});
}));
私はMACサファリ(req.user)は未定義に来ているアクセスするときにこのコードはIE、Firefoxの、クロム、マック・グーグル・クロムが、のために正常に動作しています。