當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript passport.serializeUser函數代碼示例

本文整理匯總了TypeScript中passport.serializeUser函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript serializeUser函數的具體用法?TypeScript serializeUser怎麽用?TypeScript serializeUser使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了serializeUser函數的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: initialize

 public initialize(router: express.Router): void {
     router.use(passport.initialize());
     const useSession = _.get(this.options, 'authOptions.session', true);
     if (useSession) {
         router.use(passport.session());
         if (this.options.serializeUser && this.options.deserializeUser) {
             passport.serializeUser((user: any, done: (a: any, b: string) => void) => {
                 Promise.resolve(this.options.serializeUser(user))
                     .then((result: string) => {
                         done(null, result);
                     }).catch((err: Error) => {
                         done(err, null);
                     });
             });
             passport.deserializeUser((user: string, done: (a: any, b: any) => void) => {
                 Promise.resolve(this.options.deserializeUser(user))
                     .then((result: any) => {
                         done(null, result);
                     }).catch((err: Error) => {
                         done(err, null);
                     });
             });
         }
     }
 }
開發者ID:thiagobustamante,項目名稱:typescript-rest,代碼行數:25,代碼來源:passport.ts

示例2: enableSessionSelialization

function enableSessionSelialization() {
  passport.serializeUser( (user: any, callback: any) => {
    callback(undefined, user);
  });
  passport.deserializeUser( (obj: any, callback: any) => {
    callback(undefined, obj);
  });
}
開發者ID:toannvbk93,項目名稱:goemon,代碼行數:8,代碼來源:passport.ts

示例3: LocalStategy

 container.resolve((authDirector: IAuthDirector) => {
   passport.use(new LocalStategy(authDirector.verifyUser.bind(authDirector)));
   passport.serializeUser((user: IUserModel, next) => {
     authDirector.serializeUser(user, next);
   });
   passport.deserializeUser((username: string, next) => {
     authDirector.deserializeUser(username, next);
   });
 });
開發者ID:sebthieti,項目名稱:jogplayer-online,代碼行數:9,代碼來源:router.module.ts

示例4: load

    @InitPhase
    @Inject(['logger', 'config', 'express', 'passport-impl'])
    @After(['ExpressSession:load', 'Passport:load'])
    load(logger, config, app, PassportImpl) {
        logger.debug('load Passport-local');

        config.defaults({
            passportLocal: {
                loginPostRoute: '/auth/login',
                tokenPostRoute: '/auth/token',

                enableTokenLogin: true,

                postLoginUrl: '/admin/',
                postLogoutUrl: '/',
                postErrorUrl: '/login',

                // after this many tries, start locks
                maxFailTries: 5,

                // maximum amount of a time an account may be locked for
                maxLockTime: 1 * 3600 * 1000
            }
        });

        const settings = config.get('passportLocal');

        passport.serializeUser(function serializeUser(user, done) {
            const info = PassportImpl.serializeUserToSession(user);
            done(null, info);
        });

        passport.deserializeUser(function deserializeUser(req, info, done) {
            PassportImpl.deserializeUserFromSession(info).then((user) => {
                done(null, user);
            }).catch(done);
        });

        configureLocal(app, PassportImpl, settings);

        if (settings.enableTokenLogin) {
            configureToken(app, PassportImpl, settings);
        }

        app.get('/logout', function(req, res) {
            res.clearCookie('remember_me');
            req.logout();
            req.session.destroy(function() {
                res.okRedirect(settings.postLogoutUrl, {status: true});
            });
        });
    }
開發者ID:HallM,項目名稱:poc-fw2,代碼行數:52,代碼來源:index.ts

示例5: initPassport

export function initPassport(appUrl: string) {
  passport.serializeUser(async (user: any, done) => done(null, user._id))
  passport.deserializeUser(async (_id, done) => done(null, await User.findOne({_id})))

  // Get facebook authentication values from environment variables
  const facebookClientId = process.env.MajavashakkiFbClientId
  const facebookSecret = process.env.MajavashakkiFbSecret
  const isFacebookAuthEnabled = facebookClientId && facebookSecret

  if (isFacebookAuthEnabled) {
    passport.use(new FbStrategy({
        clientID: facebookClientId,
        clientSecret: facebookSecret,
        callbackURL: appUrl + "/authFacebook",
      },
      async (accessToken, refreshToken, profile, done) => {
          console.log(`User '${profile.displayName}' logged in successfully.`)
          try {
            const user = await User.findOrCreate(profile.id)
            done(null, user)
          } catch (err) {
            done(err)
          }
      },
    ))
  } else {
      console.warn("[WARNING] Facebook authentication was not enabled. Missing environment variables 'MajavashakkiFbClientId' or 'MajavashakkiFbSecret'")
  }

  passport.use(new LocalStrategy({ usernameField: "email" }, async (email, password, done) => {
    try {
      const user = await User.findByLoginEmail(email)

      if (!user) {
        console.log(`User '${email}' tried to log in with invalid email`)
        return done(null, false, { message: "There is no account with this email. :O" });
      }

      const isValidPassword = await user.isCorrectPassword(password)

      if (!isValidPassword) {
        console.log(`User '${email}' tried to log in with invalid password`)
        return done(null, false, { message: "Invalid password, did you try 'salasana1'?" });
      }

      console.log(`User '${email}' logged in successfully`)
      return done(null, user);
    } catch (error) {
      return done(error)
    }
  }));
}
開發者ID:Majavapaja,項目名稱:Mursushakki,代碼行數:52,代碼來源:auth.ts

示例6: run

export default function run(app) {
    passport.serializeUser(function(user, callback) {
        callback(undefined, user);
    });

    passport.deserializeUser(function(user, callback) {
        callback(undefined, user);
    });

    passport.use(new LocalStrategy(function(username, password, callback) {
        userGateway.login(username, password, callback);
    }));
}
開發者ID:sjohnsonaz,項目名稱:build-launchpad,代碼行數:13,代碼來源:authentication.ts

示例7: function

exports.setup = function(User) {

    // serialize sessions
    passport.serializeUser((user, cb) => cb(null, user));
    passport.deserializeUser((id, cb) => User.load({ criteria: { _id: id } }, cb));

    // // used to serialize the user for the session
    // passport.serializeUser(function(user, done) {
    //     done(null, user); 
    //     "user.id"" saved to session req.session.passport.user = {id:'..'}
    // });
    // 
    // // used to deserialize the user
    // passport.deserializeUser(function(id, done) {
    //     User.findById(id, function(err, user) {
    //         done(err, user);
    //         //"user"" object attaches to the request as req.user.
    //     });
    // });

    passport.use(new FacebookStrategy({
        clientID: config.facebook.clientID,
        clientSecret: config.facebook.clientSecret,
        callbackURL: config.facebook.callbackURL
    }, function(accessToken, refreshToken, profile, done) {

        User.findOne({ 'facebook.id': profile.id }, function(err, user) {
            if (err)
                return done(err);

            if (!user) {
                var data = {
                    name: profile.displayName,
                    email: profile.emails[0].value,
                    username: profile.username,
                    provider_id: profile.id,
                    provider: 'facebook',
                    facebook: profile._json
                };

                user = new User(data);
                user.save(function(err) {
                    return done(err, user);
                });

            } else
                return done(err, user);
        });
    }));
};
開發者ID:SaurabhLpRocks,項目名稱:Team-Stack,代碼行數:50,代碼來源:passport.ts

示例8: PassportInitialize

export function PassportInitialize() {
    Passport.use(new Strategy(jwtConfig, (payload: JwtUserPayload, done: (a: null, b: JwtUser) => void) => {
        const user: JwtUser = {
            username: payload.sub,
            roles: payload.auth.split(','),
        };
        done(null, user);
    }));

    Passport.serializeUser((user: JwtUser, done: (a: null, b: string) => void) => {
        done(null, JSON.stringify(user));
    });

    Passport.deserializeUser((user: string, done: (a: null, b: JwtUser) => void) => {
        done(null, JSON.parse(user));
    });
}
開發者ID:garyevari,項目名稱:typescript-rest,代碼行數:17,代碼來源:test.spec.ts

示例9: serializeDeserialize

    private serializeDeserialize() {
        passport.serializeUser((user, cb) => {
            cb(null, user._id);
        });


        passport.deserializeUser((id, cb) => {
            this.userDetailService.loadUserById(id).
                then(
                (user) => {
                    cb(null, user.getUserObject());
                },
                (err) => {
                    return cb(err);
                }
                );

        });
    }
開發者ID:Azizou,項目名稱:Node-Data,代碼行數:19,代碼來源:auth-service.ts

示例10: function

export var passportFunction = function() {
    var User = mongoose.model('User');

    passport.serializeUser(function(user, done) {
        done(null, user.id);
    });

    passport.deserializeUser(function(id, done) {
        User.findOne(
            {_id: id},
            '-password',
            function(err, user) {
                done(err, user);
            }
        );
    });

    require('./strategies/local.js')();
};
開發者ID:nmobregon,項目名稱:node-express-mongodb,代碼行數:19,代碼來源:passport.ts


注:本文中的passport.serializeUser函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。