cara get data login user
Saya membuat menggunakan mysql, sequelize, handlebars, passport (auth). Saya ingin mengambil data user yang sedang login, namun tidak paham caranya. Data yg ingin saya ambil ada di index.js. kalau di controller tinggal req.user maka data user sudah muncul. Namun jika di index.js saya belum paham. Mohon solusinya ya mas
Berikut script login saya //LOCAL SIGNIN passport.use('local-signin', new LocalStrategy({ // by default, local strategy uses username and password, we will override with email usernameField: 'email', passwordField: 'password', passReqToCallback: true // allows us to pass back the entire request to the callback },
function(req, email, password, done) {
var isValidPassword = function(userpass, password) {
return bCrypt.compareSync(password, userpass);
}
User.findOne({
where: {
email: email
}
}).then(function(user) {
if (!user) {
return done(null, false, req.flash("signinMessage", 'Email tidak ditemukan'));
}
if (!isValidPassword(user.password, password)) {
return done(null, false, req.flash("signinMessage", 'Password salah'));
}
var userinfo = user.get();
return done(null, userinfo);
}).catch(function(err) {
console.log("Error:", err);
return done(null, false, {
message: 'Ada yang salah dengan login anda'
});
});
}
));
Bisa disertakan juga contoh kode di controller n index yang dimaksud?
kode di controller async function home(req, res) { req.session.apiToken = req.user.apiToken; console.log('data_user: ', req.user)
await res.render('home');
}
kode di index secara garis besar sama seperti yang di tutorial multiple device. bedanya hanya penyimpanannya saja mas. yang di tutorial simpan di fs, punyaku saya simpan di database
di index gak bisa melakukan req.user, sebagaimana yang ada di controller
Kerangka dasar aplikasi dan login saya mengikuti github berikut ini. https://github.com/abduroza/node-passport-sequelize
kode di index secara garis besar sama seperti yang di tutorial multiple device. bedanya hanya penyimpanannya saja mas. yang di tutorial simpan di fs, punyaku saya simpan di database
Bisa disertakan kode yang berkaitan dengan masalah yang sedang ditanyakan saja.
let init = async function(socket){ try { // dibawah ini saya masukkan hard code '1'. Karena belum tau cara ambil data user let getMySessions = await sessionDb.readMySession('1') //user_id masih hard code if(getMySessions.length > 0){ if(socket) socket.emit('init', getMySessions) } else { getMySessions.forEach(sess => { createSession(sess.client_id, sess.description, io) }); } } } catch (err) { return console.log(err) } } init()
Maaf saya belum sempat untuk ngecek lagi.
bagaimana mas? saya belum nemu juga caranya