This commit is contained in:
4
lib/constants/defaults.ts
Normal file
4
lib/constants/defaults.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
export const PORT = 9000;
|
||||
export const API_PATH = '/api';
|
||||
export const AUTH_ROUTE = '/auth';
|
||||
export const RESET_ROUTE = `${AUTH_ROUTE}/reset`;
|
||||
@@ -6,6 +6,7 @@ import { STRATEGIES } from '../constants/strategies';
|
||||
import { TokenProps, sign, verify as verifyJwt } from '../utils/jwt';
|
||||
import { encrypt, verify as verifyPassword } from '../utils/password';
|
||||
import { generateResetToken } from '../utils/tokens';
|
||||
import { getPasswordResetLink } from '../utils/links';
|
||||
|
||||
export type Auth = {
|
||||
is2FA?: boolean;
|
||||
@@ -65,12 +66,9 @@ AuthSchema.methods = {
|
||||
},
|
||||
|
||||
async getResetLink(route) {
|
||||
const resetToken = await this.getResetToken();
|
||||
if (resetToken) {
|
||||
let resetRoute = route;
|
||||
resetRoute = resetRoute.replace(':user_id', this._id);
|
||||
resetRoute = resetRoute.replace(':reset_token?', resetToken);
|
||||
const resetUrl = `${process.env.URL}${resetRoute}`;
|
||||
const token = await this.getResetToken();
|
||||
if (token) {
|
||||
const resetUrl = getPasswordResetLink(token);
|
||||
console.log('[sendPasswordReset] resetUrl:', resetUrl);
|
||||
return resetUrl;
|
||||
}
|
||||
@@ -109,13 +107,13 @@ AuthSchema.methods = {
|
||||
};
|
||||
|
||||
AuthSchema.statics = {
|
||||
// authenticateAndGetRecordLocator: async function (username, password) {
|
||||
// const auth = await this.findByUserName(username);
|
||||
// if (auth && auth.authenticate(password)) {
|
||||
// return auth?.record;
|
||||
// }
|
||||
// return false;
|
||||
// },
|
||||
authenticateAndGetRecordLocator: async function (username, password) {
|
||||
const auth = await this.findByUsername(username);
|
||||
if (auth && auth.authenticate(password)) {
|
||||
return auth.record;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
|
||||
async findByUsername(username) {
|
||||
return this.findOne({ username });
|
||||
|
||||
@@ -2,10 +2,11 @@ import dotenv from 'dotenv';
|
||||
|
||||
import app from './app';
|
||||
import { connection } from './database/database.connection';
|
||||
import { PORT as DEFAULT_PORT } from './constants/defaults';
|
||||
|
||||
dotenv.config();
|
||||
|
||||
const PORT: number = Number(process.env.PORT) || 9000;
|
||||
const PORT: number = Number(process.env.PORT) || DEFAULT_PORT;
|
||||
|
||||
connection.then(
|
||||
() => app.listen(PORT),
|
||||
|
||||
7
lib/utils/links.ts
Normal file
7
lib/utils/links.ts
Normal file
@@ -0,0 +1,7 @@
|
||||
import { API_PATH, PORT, RESET_ROUTE } from '../constants/defaults';
|
||||
|
||||
export const getPasswordResetLink = (token: string) => {
|
||||
const hostname = process.env.HOST_NAME || `localhost:${process.env.PORT || PORT}`;
|
||||
const path = `${process.env.API_PATH || API_PATH}${process.env.RESET_ROUTE || RESET_ROUTE}`;
|
||||
return `https://${hostname}${path}?t=${token}`;
|
||||
};
|
||||
Reference in New Issue
Block a user