remove mongo related lines

This commit is contained in:
andrzej 2024-06-03 12:21:54 +02:00
parent 31409fd99d
commit dc952fa01d
5 changed files with 35 additions and 19 deletions

View File

@ -1,6 +1,6 @@
import passport from 'passport' import passport from 'passport'
import { Strategy as localStrategy } from 'passport-local' import { Strategy as localStrategy } from 'passport-local'
import { User, UserModel, encryptPwd, pwdIsValid } from '../model/model.mjs' import { User, encryptPwd, pwdIsValid } from '../model/model.mjs'
import { Strategy as JWTstrategy, ExtractJwt } from 'passport-jwt' import { Strategy as JWTstrategy, ExtractJwt } from 'passport-jwt'
import { userDb } from '../db.mjs' import { userDb } from '../db.mjs'
@ -12,7 +12,6 @@ passport.use('signup', new localStrategy(
async (username, password, done) => { async (username, password, done) => {
console.log("signup auth strategy has begun") console.log("signup auth strategy has begun")
try { try {
// const user = await UserModel.create({ email, password })
const encryptedPwd = await encryptPwd(password) const encryptedPwd = await encryptPwd(password)
const user = await userDb("users").insert({ username: username, password: encryptedPwd }).returning(["username", "password"]) const user = await userDb("users").insert({ username: username, password: encryptedPwd }).returning(["username", "password"])
console.log(`user: ${user}`) console.log(`user: ${user}`)
@ -33,7 +32,6 @@ passport.use('login',
async (email, password, done) => { async (email, password, done) => {
console.log("local strategy called") console.log("local strategy called")
try { try {
// const user: User = await UserModel.findOne({ email })
let returnedUser: Array<User> = await userDb("users").select("username", "password").where({ username: email }) let returnedUser: Array<User> = await userDb("users").select("username", "password").where({ username: email })
const user: User = returnedUser[0] const user: User = returnedUser[0]
console.log(`user: ${user}`) console.log(`user: ${user}`)
@ -41,7 +39,6 @@ passport.use('login',
return done(null, false, { message: "user not found" }) return done(null, false, { message: "user not found" })
} }
// const validate: boolean = await user.isValidPassword(password)
const validate: boolean = await pwdIsValid(password, user) const validate: boolean = await pwdIsValid(password, user)
console.log(`isValidPassword? ${validate}`) console.log(`isValidPassword? ${validate}`)

24
dist/auth/auth.mjs vendored
View File

@ -9,33 +9,39 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
}; };
import passport from 'passport'; import passport from 'passport';
import { Strategy as localStrategy } from 'passport-local'; import { Strategy as localStrategy } from 'passport-local';
import { UserModel } from '../model/model.mjs'; import { encryptPwd, pwdIsValid } from '../model/model.mjs';
import { Strategy as JWTstrategy, ExtractJwt } from 'passport-jwt'; import { Strategy as JWTstrategy, ExtractJwt } from 'passport-jwt';
import { userDb } from '../db.mjs';
passport.use('signup', new localStrategy({ passport.use('signup', new localStrategy({
usernameField: 'email', usernameField: 'username',
passwordField: 'password' passwordField: 'password'
}, (email, password, done) => __awaiter(void 0, void 0, void 0, function* () { }, (username, password, done) => __awaiter(void 0, void 0, void 0, function* () {
console.log("signup auth strategy has begun");
try { try {
const user = yield UserModel.create({ email, password }); const encryptedPwd = yield encryptPwd(password);
const user = yield userDb("users").insert({ username: username, password: encryptedPwd }).returning(["username", "password"]);
console.log(`user: ${user}`);
return done(null, user); return done(null, user);
} }
catch (err) { catch (err) {
console.error(err);
done(err); done(err);
} }
}))); })));
passport.use('login', new localStrategy({ passport.use('login', new localStrategy({
usernameField: "email", usernameField: "username",
passwordField: "password", passwordField: "password",
session: false session: false
}, (email, password, done) => __awaiter(void 0, void 0, void 0, function* () { }, (email, password, done) => __awaiter(void 0, void 0, void 0, function* () {
console.log("local strategy called"); console.log("local strategy called");
try { try {
const user = yield UserModel.findOne({ email }); let returnedUser = yield userDb("users").select("username", "password").where({ username: email });
const user = returnedUser[0];
console.log(`user: ${user}`); console.log(`user: ${user}`);
if (!user) { if (!user || returnedUser.length === 0) {
return done(null, false, { message: "user not found" }); return done(null, false, { message: "user not found" });
} }
const validate = yield user.isValidPassword(password); const validate = yield pwdIsValid(password, user);
console.log(`isValidPassword? ${validate}`); console.log(`isValidPassword? ${validate}`);
if (!validate) { if (!validate) {
return done(null, false, { message: "wrong password" }); return done(null, false, { message: "wrong password" });
@ -48,7 +54,7 @@ passport.use('login', new localStrategy({
}))); })));
passport.use(new JWTstrategy({ passport.use(new JWTstrategy({
secretOrKey: "TOP_SECRET", secretOrKey: "TOP_SECRET",
jwtFromRequest: ExtractJwt.fromUrlQueryParameter('secret_token') jwtFromRequest: ExtractJwt.fromAuthHeaderWithScheme('secret_token')
}, (token, done) => __awaiter(void 0, void 0, void 0, function* () { }, (token, done) => __awaiter(void 0, void 0, void 0, function* () {
try { try {
return done(null, token.user); return done(null, token.user);

7
dist/db.mjs vendored
View File

@ -13,3 +13,10 @@ export const testDb = knex({
}, },
useNullAsDefault: true useNullAsDefault: true
}); });
export const userDb = knex({
client: "sqlite3",
connection: {
filename: "./users"
},
useNullAsDefault: true
});

10
dist/model/model.mjs vendored
View File

@ -35,3 +35,13 @@ UserSchema.methods.isValidPassword = function (password) {
}); });
}; };
export const UserModel = mongoose.model("user", UserSchema); export const UserModel = mongoose.model("user", UserSchema);
export function encryptPwd(pwd) {
return __awaiter(this, void 0, void 0, function* () {
return Promise.resolve(bcrypt.hash(pwd, 10));
});
}
export function pwdIsValid(pwd, user) {
return __awaiter(this, void 0, void 0, function* () {
return Promise.resolve(bcrypt.compare(pwd, user.password));
});
}

View File

@ -17,10 +17,6 @@ router.post("/signup", passport.authenticate("signup", { session: false }), (req
user: req.user user: req.user
}); });
})); }));
// router.post("/login", passport.authenticate('local'),
// function(req, res) {
// res.json({ res })
// })
router.post('/login', (req, res, next) => __awaiter(void 0, void 0, void 0, function* () { router.post('/login', (req, res, next) => __awaiter(void 0, void 0, void 0, function* () {
passport.authenticate('login', (err, user, info) => __awaiter(void 0, void 0, void 0, function* () { passport.authenticate('login', (err, user, info) => __awaiter(void 0, void 0, void 0, function* () {
try { try {
@ -31,8 +27,8 @@ router.post('/login', (req, res, next) => __awaiter(void 0, void 0, void 0, func
req.login(user, { session: false }, (error) => __awaiter(void 0, void 0, void 0, function* () { req.login(user, { session: false }, (error) => __awaiter(void 0, void 0, void 0, function* () {
if (error) if (error)
return next(error); return next(error);
const body = { _id: user._id, email: user.email }; const body = { _id: user._id, username: user.username };
const token = jwt.sign({ user: body }, 'TOP_SECRET'); const token = jwt.sign({ user: body }, 'TOP_SECRET', { expiresIn: "20m" });
return res.json({ token }); return res.json({ token });
})); }));
} }