پرش به مطلب اصلی

توابع کمکی احراز هویت (auth.ts)

توابع کمکی مربوط به ورود، خروج، مدیریت کاربران و رمز عبور.

findUser

پیدا کردن کاربر بر اساس نام کاربری.

async function findUser(
username: string,
usernameField = "username"
): Promise<CoreUserModel>

پارامترها:

  • username: نام کاربری
  • usernameField: نام فیلد نام کاربری (پیش‌فرض: "username")

بازگشتی: شیء کاربر یا undefined

authenticate

احراز هویت کاربر با نام کاربری و رمز عبور.

async function authenticate(
username: string,
password: string,
usernameField = "username",
passwordField = "password"
): Promise<CoreUserModel>

پارامترها:

  • username: نام کاربری
  • password: رمز عبور
  • usernameField: نام فیلد نام کاربری
  • passwordField: نام فیلد رمز عبور

بازگشتی: شیء کاربر در صورت موفقیت، undefined در صورت شکست

مثال:

const user = await authenticate('admin', 'password123');
if (user) {
// ورود موفق
} else {
// نام کاربری یا رمز عبور اشتباه
}

login

ورود کاربر و ایجاد session.

async function login(
uid: number,
request: CoreRequest,
options?: {
setCookie?: boolean;
updateUserSettings?: boolean;
}
): Promise<{ token: string; refresh_token: string }>

پارامترها:

  • uid: ID کاربر
  • request: شیء درخواست
  • options.setCookie: آیا cookie تنظیم شود (پیش‌فرض: true)
  • options.updateUserSettings: آیا تنظیمات کاربر بروزرسانی شود

بازگشتی: شیء شامل token و refresh_token

comparePassword

مقایسه رمز عبور هش شده با رمز عبور ساده.

async function comparePassword(
hashedPassword: string,
simplePassword: string,
replaceSlash = false
): Promise<boolean>

syncUserModel

همگام‌سازی مدل کاربر (deprecated).

async function syncUserModel(): Promise<void>

encryptPassword

رمزگذاری رمز عبور.

async function encryptPassword(
password: string,
saltRounds: string | number = 10,
replaceSlash = false
): Promise<string>

پارامترها:

  • password: رمز عبور ساده
  • saltRounds: تعداد دورهای salt (پیش‌فرض: 10)
  • replaceSlash: آیا اسلش‌ها جایگزین شوند

بازگشتی: رمز عبور هش شده

مثال:

const hashedPassword = await encryptPassword('mySecurePassword');
// ذخیره hashedPassword در دیتابیس

logout

خروج کاربر و حذف session.

async function logout(uid: number, response: Response): Promise<boolean>

پارامترها:

  • uid: ID کاربر
  • response: شیء پاسخ Express

بازگشتی: true در صورت موفقیت

generateSessionToken

تولید token جلسه.

async function generateSessionToken<T = {}>(
payload: T,
expiredIn = 60
): Promise<string>

verifyJwtToken

تأیید token JWT.

async function verifyJwtToken(token: string): Promise<ServerSessionJWTTokenInfo>

assignUserToGroup

اختصاص کاربر به گروه.

async function assignUserToGroup(userId: number, groupId: number): Promise<boolean>

پارامترها:

  • userId: ID کاربر
  • groupId: ID گروه

بازگشتی: true در صورت موفقیت

findOrCreateGroup

پیدا کردن یا ایجاد گروه.

async function findOrCreateGroup(
name: string,
sys_access?: UserSystemAccessLevel[]
): Promise<CoreGroupModel>

پارامترها:

  • name: نام گروه
  • sys_access: دسترسی‌های سیستمی گروه

بازگشتی: شیء گروه