|
|
@@ -1,4 +1,3 @@
|
|
|
-import crypto from "crypto";
|
|
|
import jwt from "jsonwebtoken";
|
|
|
import {
|
|
|
User
|
|
|
@@ -10,39 +9,38 @@ import {
|
|
|
|
|
|
export const login = async (input: LoginInput): Promise<LoginResult> => {
|
|
|
const {
|
|
|
- mail,
|
|
|
- password
|
|
|
+ password,
|
|
|
+ mail
|
|
|
} = input;
|
|
|
|
|
|
+ if (!mail || !password) {
|
|
|
+ return {
|
|
|
+ message: "Email and password are required",
|
|
|
+ code: 400,
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
const user = await User.findOne({
|
|
|
mail
|
|
|
});
|
|
|
|
|
|
if (!user) {
|
|
|
return {
|
|
|
- statusCode: 404,
|
|
|
- success: false,
|
|
|
- message: "Kullanıcı bulunamadı",
|
|
|
+ message: "User not found",
|
|
|
code: 404,
|
|
|
};
|
|
|
}
|
|
|
|
|
|
- const hashedPassword = crypto.createHash("md5").update(password).digest("hex");
|
|
|
-
|
|
|
- if (user.password !== hashedPassword) {
|
|
|
+ if (user.password !== password) {
|
|
|
return {
|
|
|
- statusCode: 401,
|
|
|
- success: false,
|
|
|
- message: "Hatalı şifre",
|
|
|
+ message: "Wrong password",
|
|
|
code: 401,
|
|
|
};
|
|
|
}
|
|
|
|
|
|
if (!user.isMailVerified) {
|
|
|
return {
|
|
|
- statusCode: 403,
|
|
|
- success: false,
|
|
|
- message: "Lütfen email adresinizi doğrulayın",
|
|
|
+ message: "Please verify your email address.",
|
|
|
code: 403,
|
|
|
payload: {
|
|
|
isMailVerified: user.isMailVerified,
|
|
|
@@ -53,7 +51,10 @@ export const login = async (input: LoginInput): Promise<LoginResult> => {
|
|
|
|
|
|
const accessToken = jwt.sign(
|
|
|
{
|
|
|
- userId: user._id
|
|
|
+ companyName: user.companyName,
|
|
|
+ fullName: user.fullName,
|
|
|
+ userID: user._id,
|
|
|
+ mail: user.mail
|
|
|
},
|
|
|
process.env.JWT_SECRET as string,
|
|
|
{
|
|
|
@@ -63,7 +64,10 @@ export const login = async (input: LoginInput): Promise<LoginResult> => {
|
|
|
|
|
|
const refreshToken = jwt.sign(
|
|
|
{
|
|
|
- userId: user._id
|
|
|
+ companyName: user.companyName,
|
|
|
+ fullName: user.fullName,
|
|
|
+ userID: user._id,
|
|
|
+ mail: user.mail
|
|
|
},
|
|
|
process.env.JWT_REFRESH_SECRET as string || process.env.JWT_SECRET as string,
|
|
|
{
|
|
|
@@ -75,21 +79,19 @@ export const login = async (input: LoginInput): Promise<LoginResult> => {
|
|
|
await user.save();
|
|
|
|
|
|
return {
|
|
|
- statusCode: 200,
|
|
|
- success: true,
|
|
|
- message: "Giriş başarılı",
|
|
|
+ message: "Login successful",
|
|
|
code: 200,
|
|
|
payload: {
|
|
|
- accessToken,
|
|
|
refreshToken,
|
|
|
+ accessToken,
|
|
|
user: {
|
|
|
+ phoneNumber: user.phoneNumber,
|
|
|
+ companyName: user.companyName,
|
|
|
userID: user._id.toString(),
|
|
|
- mail: user.mail,
|
|
|
firstName: user.firstName,
|
|
|
lastName: user.lastName,
|
|
|
fullName: user.fullName,
|
|
|
- phoneNumber: user.phoneNumber,
|
|
|
- companyName: user.companyName,
|
|
|
+ mail: user.mail,
|
|
|
},
|
|
|
},
|
|
|
};
|