developer
7 سال پیش توسط developer مطرح شد
0 پاسخ

رجیستر با پاسپورت

سلام توی نود جی اس میخوام با اطلاعاتی که از api میگیرم رجیستر کنم، الان به این صورته:

    async registerProccess(req, res, next) {
        try {
            if (!await this.validationData(req, res)) return;

            passport.authenticate('local.register')(req, res, next);

            let newCode = new Code({
                user: newUser.id,
                code: Math.floor(Math.random() * 90000) + 10000,
                expire: Date.now() + 1000 * 60 * 5
            });

            newCode.save();

            return res.json({
                status: 'success'
            });

        } catch (err) {
            this.failed(err.message, res);
        }
    }

بعد رجیستر میخوام اون کد رو درست کنم و واسه کاربر پیامک کنم چجوری به این یوزری که تازه درست کردم دسترسی پیدا کنم؟ این روشی که واسه رجیستر استفاده کردم درسته؟

توی پاسپورت بخش رجیستر هم اینه:

passport.use('local.register' , new localStrategy({
    usernameField : 'phone',
    passwordField : 'password',
    passReqToCallback : true
} , (req , phone ,  password , done) => {
    User.findOne({ 'phone' : phone } , (err , user) => {
        if(err) return done(err);
        if(user) return done(null , false , req.flash('errors' , 'چنین کاربری قبلا در سایت ثبت نام کرده است'));

        const newUser = new User({
            name : req.body.name,
            phone,
            password
        });

        newUser.save(err => {
            if(err) return done(err , false , req.flash('errors' , 'ثبت نام با موفقیت انجام نشد لطفا دوباره سعی کنید'));
            done(null , newUser);
        })

    })
}))

@hesammousavi