diff --git a/back/services/auth.ts b/back/services/auth.ts index d8805e2c..fb606051 100644 --- a/back/services/auth.ts +++ b/back/services/auth.ts @@ -50,6 +50,7 @@ export default class AuthService { twoFactorActivated, twoFactorActived, tokens = {}, + platform, } = content; // patch old field twoFactorActivated = twoFactorActivated || twoFactorActived; @@ -103,22 +104,29 @@ export default class AuthService { retries: 0, lastip: ip, lastaddr: address, + platform: req.platform, isTwoFactorChecking: false, }); await this.notificationService.notify( '登陆通知', - `你于${new Date( - timestamp, - ).toLocaleString()}在 ${address} 登陆成功,ip地址 ${ip}`, + `你于${new Date(timestamp).toLocaleString()}在 ${address} ${ + req.platform + }端 登陆成功,ip地址 ${ip}`, ); await this.getLoginLog(); await this.insertDb({ type: AuthDataType.loginLog, - info: { timestamp, address, ip, status: LoginStatus.success }, + info: { + timestamp, + address, + ip, + platform: req.platform, + status: LoginStatus.success, + }, }); return { code: 200, - data: { token, lastip, lastaddr, lastlogon, retries }, + data: { token, lastip, lastaddr, lastlogon, retries, platform }, }; } else { this.updateAuthInfo(content, { @@ -126,17 +134,24 @@ export default class AuthService { lastlogon: timestamp, lastip: ip, lastaddr: address, + platform: req.platform, }); await this.notificationService.notify( '登陆通知', - `你于${new Date( - timestamp, - ).toLocaleString()}在 ${address} 登陆失败,ip地址 ${ip}`, + `你于${new Date(timestamp).toLocaleString()}在 ${address} ${ + req.platform + }端 登陆失败,ip地址 ${ip}`, ); await this.getLoginLog(); await this.insertDb({ type: AuthDataType.loginLog, - info: { timestamp, address, ip, status: LoginStatus.fail }, + info: { + timestamp, + address, + ip, + platform: req.platform, + status: LoginStatus.fail, + }, }); return { code: 400, message: config.authError }; } @@ -243,6 +258,7 @@ export default class AuthService { this.updateAuthInfo(authInfo, { lastip: ip, lastaddr: address, + platform: req.platform, }); return { code: 430, message: '验证失败' }; } diff --git a/src/pages/login/index.tsx b/src/pages/login/index.tsx index 418e6df5..bcf9e8e8 100644 --- a/src/pages/login/index.tsx +++ b/src/pages/login/index.tsx @@ -77,7 +77,14 @@ const Login = () => { const checkResponse = (data: any) => { if (data.code === 200) { - const { token, lastip, lastaddr, lastlogon, retries = 0 } = data.data; + const { + token, + lastip, + lastaddr, + lastlogon, + retries = 0, + platform, + } = data.data; localStorage.setItem(config.authKey, token); notification.success({ message: '登录成功!', @@ -89,6 +96,7 @@ const Login = () => {
上次登录地点:{lastaddr || '-'}
上次登录IP:{lastip || '-'}
+
上次登录设备:{platform || '-'}
上次登录状态:{retries > 0 ? `失败${retries}次` : '成功'}
), diff --git a/src/pages/setting/loginLog.tsx b/src/pages/setting/loginLog.tsx index cb79e8c7..b7cd1c59 100644 --- a/src/pages/setting/loginLog.tsx +++ b/src/pages/setting/loginLog.tsx @@ -45,6 +45,12 @@ const columns = [ key: 'ip', align: 'center' as const, }, + { + title: '登陆设备', + dataIndex: 'platform', + key: 'platform', + align: 'center' as const, + }, { title: '登陆状态', dataIndex: 'status',