2017-08-02 116 views
0

請注意,我是節點js的初學者,請提前致歉。Express-Passport本地身份驗證不適用於Safari瀏覽器

 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); 
        } 
       }); 
     })); 

此代碼對IE,火狐,Chrome,蘋果,谷歌,Chrome,但當我訪問MAC Safari瀏覽器(req.user)即將不確定工作的罰款。請幫忙從野生動物園對此我越來越req.user不確定的護照JS的成功重定向

傳入的請求

回答

0

嘗試在做回調傳遞用戶代替user.username的。 如果在serialize用戶中傳遞user.username,則反序列化方法必須將用戶名作爲參數。

passport.serializeUser(function(user, done) { 
     done(null, user); 
    }); 
相關問題