Skip to content

Commit c5ea3d3

Browse files
committed
bagfix:
- LowerCase - signup+login
1 parent 815993f commit c5ea3d3

File tree

7 files changed

+48
-5
lines changed

7 files changed

+48
-5
lines changed

controllers/auth/index.js

+2
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@ const signup = require('./signup');
22
const login = require('./login');
33
const logout = require('./logout');
44
const currentUser = require('./currentUser');
5+
const signupEndLogin = require('./signupEndLogin')
56

67
module.exports = {
78
signup,
89
login,
910
logout,
1011
currentUser,
12+
signupEndLogin,
1113
}

controllers/auth/login.js

+2
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@ const login = async (req, res) => {
2222
}
2323
const token = jwt.sign(peyload, SECRET_KEY, { expiresIn: "24h" });
2424
await User.findByIdAndUpdate(user._id, { token });
25+
2526
res.json({
2627
token,
28+
name: user.name,
2729
});
2830
};
2931

controllers/auth/signup.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@ const { User } = require('../../models/user');
44
const { RequestError } = require('../../helpers/index');
55

66
const signup = async (req, res) => {
7-
const { name, email, password } = req.body;
7+
let { name, email, password } = req.body;
8+
email = email.toLowerCase();
89
const user = await User.findOne({ email });
910
if (user) {
1011
throw RequestError(409, "Email already exist");
1112
}
1213
const hashPassword = await bcrypt.hash(password, 10);
14+
1315
const result = await User.create({ name, email, password: hashPassword });
1416
res.status(201).json({
1517
name: result.name,

controllers/auth/signupEndLogin.js

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
const bcrypt = require('bcryptjs');
2+
const jwt = require('jsonwebtoken');
3+
4+
const { User } = require('../../models/user');
5+
const { RequestError } = require('../../helpers/index');
6+
const { SECRET_KEY } = process.env;
7+
8+
const signupEndLogin = async (req, res) => {
9+
let { name, email, password } = req.body;
10+
// SINGUP *********************************************
11+
email = email.toLowerCase();
12+
let user = await User.findOne({ email });
13+
if (user) {
14+
throw RequestError(409, "Email already exist");
15+
}
16+
const hashPassword = await bcrypt.hash(password, 10);
17+
18+
const result = await User.create({ name, email, password: hashPassword });
19+
20+
// LOGIN *********************************************
21+
user = await User.findOne({ email });
22+
const peyload = {
23+
id: user._id
24+
}
25+
const token = jwt.sign(peyload, SECRET_KEY, { expiresIn: "24h" });
26+
await User.findByIdAndUpdate(user._id, { token });
27+
28+
res.status(201).json({
29+
name: result.name,
30+
email: result.email,
31+
token,
32+
});
33+
}
34+
35+
module.exports = signupEndLogin;

models/user.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ const Joi = require('joi');
33

44
const { handleSchemaValidationErrors } = require("../helpers");
55

6-
const emailRegexp = /^([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+)*\.[a-z]{2,6}$/;
7-
// const emailRegexp = /^[\w.]+@[\w]+.[\w]+$/;
6+
// const emailRegexp = /^([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+)*\.[a-z]{2,6}$/;
7+
const emailRegexp = /^[\w.]+@[\w]+.[\w]+$/;
88

99
const userShema = new Schema({
1010
name: {
@@ -34,6 +34,7 @@ userShema.post("save", handleSchemaValidationErrors);
3434
// ** Joi schemas ***************************************
3535
const singupSchema = Joi.object({
3636
name: Joi.string().required(),
37+
// email: Joi.string().required(),
3738
email: Joi.string().pattern(emailRegexp).required(),
3839
password: Joi.string().min(6).required(),
3940
repeat_password: Joi.string().required().valid(Joi.ref('password')),

routes/api/auth.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ const {googleAuth, googleRedirect} = require('../google/auth_controller');
99

1010
const router = express.Router()
1111

12-
router.post('/signup', validationBody(schemas.singupSchema) ,ctrlWrapper(controller.signup));
12+
// router.post('/signup', validationBody(schemas.singupSchema) ,ctrlWrapper(controller.signup));
13+
router.post('/signup', validationBody(schemas.singupSchema) ,ctrlWrapper(controller.signupEndLogin));
1314

1415
router.post('/login', validationBody(schemas.loginSchema), ctrlWrapper(controller.login));
1516

routes/google/auth_controller.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ const googleRedirect = async (req, res) => {
6868
// ***************************************************
6969

7070
// LOGIN *********************************************
71-
user = await User.findOne({ email });;
71+
user = await User.findOne({ email });
7272
const peyload = { id: user._id };
7373
const token = jwt.sign(peyload, SECRET_KEY, { expiresIn: "24h" });
7474
await User.findByIdAndUpdate(user._id, { token });

0 commit comments

Comments
 (0)