43 lines
1.2 KiB
JavaScript
43 lines
1.2 KiB
JavaScript
import argon2 from 'argon2';
|
|
import { getConfig } from '../db/config.js';
|
|
import { ipcMain } from 'electron';
|
|
|
|
/**
|
|
* 管理员登录验证
|
|
* @param {string} password - 用户输入的密码
|
|
* @returns {Promise<{success: boolean, message: string}>}
|
|
*/
|
|
async function verifyAdminPassword(password) {
|
|
try {
|
|
const config = await getConfig('admin_password');
|
|
if (!config || !config.value) {
|
|
return { success: false, message: '管理员密码未设置' };
|
|
}
|
|
|
|
const isMatch = await argon2.verify(config.value, password);
|
|
if (isMatch) {
|
|
return { success: true, message: '登录成功' };
|
|
} else {
|
|
return { success: false, message: '密码错误' };
|
|
}
|
|
} catch (error) {
|
|
console.error('验证管理员密码失败:', error);
|
|
return { success: false, message: '验证过程发生错误' };
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 初始化认证相关的IPC处理程序
|
|
*/
|
|
function initAuthIpc() {
|
|
// 管理员登录验证 - 使用正确的通道名称
|
|
ipcMain.handle('admin-login', async (event, credentials) => {
|
|
// 从credentials对象中获取密码
|
|
return await verifyAdminPassword(credentials.password);
|
|
});
|
|
}
|
|
|
|
export {
|
|
verifyAdminPassword,
|
|
initAuthIpc
|
|
}; |