توابع کمکی احراز هویت (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: دسترسیهای سیستمی گروه
بازگشتی: شیء گروه