| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- import crypto from "crypto";
- import jwt from "jsonwebtoken";
- import {
- User
- } from "../../../models/User";
- import {
- LoginResult,
- LoginInput
- } from "./types";
- export const login = async (input: LoginInput): Promise<LoginResult> => {
- const {
- mail,
- password
- } = input;
- const user = await User.findOne({
- mail
- });
- if (!user) {
- return {
- statusCode: 404,
- success: false,
- message: "Kullanıcı bulunamadı",
- code: 404,
- };
- }
- const hashedPassword = crypto.createHash("md5").update(password).digest("hex");
- if (user.password !== hashedPassword) {
- return {
- statusCode: 401,
- success: false,
- message: "Hatalı şifre",
- code: 401,
- };
- }
- if (!user.isMailVerified) {
- return {
- statusCode: 403,
- success: false,
- message: "Lütfen email adresinizi doğrulayın",
- code: 403,
- payload: {
- isMailVerified: user.isMailVerified,
- mail: user.mail,
- },
- };
- }
- const accessToken = jwt.sign(
- {
- userId: user._id
- },
- process.env.JWT_SECRET as string,
- {
- expiresIn: "4h"
- }
- );
- const refreshToken = jwt.sign(
- {
- userId: user._id
- },
- process.env.JWT_REFRESH_SECRET as string || process.env.JWT_SECRET as string,
- {
- expiresIn: "30d"
- }
- );
- user.refreshToken = refreshToken;
- await user.save();
- return {
- statusCode: 200,
- success: true,
- message: "Giriş başarılı",
- code: 200,
- payload: {
- accessToken,
- refreshToken,
- user: {
- userID: user._id.toString(),
- mail: user.mail,
- firstName: user.firstName,
- lastName: user.lastName,
- fullName: user.fullName,
- phoneNumber: user.phoneNumber,
- companyName: user.companyName,
- },
- },
- };
- };
- export default login;
|