diff --git a/src/api/auth.ts b/src/api/auth.ts index eab43a76..c11bde79 100644 --- a/src/api/auth.ts +++ b/src/api/auth.ts @@ -1,4 +1,5 @@ import { request } from '@/plugins/http-fetch'; +import { sessionGet } from '@/utils/cache-session-utils'; /** * 登录方法 @@ -87,3 +88,69 @@ export function getCaptchaImage() { whithToken: false, }); } + +/** + * 登录认证源 + * @returns object + */ +export function getLoginSource() { + return request({ + url: '/auth/login/source', + method: 'GET', + whithToken: false, + }); +} + +/** + * LDAP登录 + * @returns object + */ +export function loginLDAP(data: Record) { + return request({ + url: '/auth/login/ldap', + method: 'POST', + data: data, + whithToken: false, + }); +} + +/** + * SMTP登录 + * @returns object + */ +export function loginSMTP(data: Record) { + return request({ + url: '/auth/login/smtp', + method: 'POST', + data: data, + whithToken: false, + }); +} + +/** + * 登录认证源OAuth2跳转登录URL + * @returns object + */ +export function loginOAuth2URL(state: string): string { + // 兼容旧前端可改配置文件 + const baseUrl = import.meta.env.PROD + ? sessionGet('baseUrl') || import.meta.env.VITE_API_BASE_URL + : import.meta.env.VITE_API_BASE_URL; + return `${baseUrl}/auth/login/oauth2/authorize?state=${state}`; +} + +/** + * 登录认证源OAuth2认证登录 + * @returns object + */ +export function loginOAuth2Token(code: string, state: string) { + return request({ + url: '/auth/login/oauth2/token', + method: 'POST', + data: { + code, + state, + }, + whithToken: false, + }); +} diff --git a/src/api/system/login-source.ts b/src/api/system/login-source.ts new file mode 100644 index 00000000..e1d923e8 --- /dev/null +++ b/src/api/system/login-source.ts @@ -0,0 +1,64 @@ +import { request } from '@/plugins/http-fetch'; + +/** + * 查询登录源列表 + * @param query 查询参数 + * @returns object + */ +export function listLoginSource(query: Record) { + return request({ + url: '/system/login-source/list', + method: 'GET', + params: query, + }); +} + +/** + * 查询登录源详细 + * @param id 登录源ID + * @returns object + */ +export function getLoginSource(id: string | number) { + return request({ + url: `/system/login-source/${id}`, + method: 'GET', + }); +} + +/** + * 新增登录源 + * @param data 登录源对象 + * @returns object + */ +export function addLoginSource(data: Record) { + return request({ + url: '/system/login-source', + method: 'POST', + data: data, + }); +} + +/** + * 修改登录源 + * @param data 登录源对象 + * @returns object + */ +export function updateLoginSource(data: Record) { + return request({ + url: '/system/login-source', + method: 'PUT', + data: data, + }); +} + +/** + * 认证源删除 + * @param id 登录源ID + * @returns object + */ +export function delLoginSource(id: string | number) { + return request({ + url: `/system/login-source/${id}`, + method: 'DELETE', + }); +} diff --git a/src/i18n/locales/en-US.ts b/src/i18n/locales/en-US.ts index c944ea15..8ca1e802 100644 --- a/src/i18n/locales/en-US.ts +++ b/src/i18n/locales/en-US.ts @@ -261,12 +261,16 @@ export default { login: { tabPane1: 'Account password login', tabPane2: 'Login with phone number', - registerBtn: 'Register an account', + registerBtn: 'Register Account', loginBtn: 'Sign In', loginSuccess: 'Login Successful', - loginMethod: 'Other login methods:', - loginMethodWX: 'WeChat Scan Login', - loginMethodQQ: 'QQ Scan Code Login', + otherMethod: 'Other Methods', + backBtn: 'Back', + backBtnLogin: 'Return Login', + authorizedNotfound: 'Authorized Not Found', + authorizedFailed: 'Authorized Failed', + authorizedSuccess: 'Authorized Successful', + redirectHome: 'Redirect to home page in {i} seconds', }, register: { registerBtn: 'Register', @@ -1704,6 +1708,7 @@ export default { userName: 'Nick Name', permission: 'Role', className: 'Department', + userType: 'User Type', loginIp: 'Login Address', loginTime: 'Login Time', status: 'Status', @@ -1766,6 +1771,55 @@ export default { refreshCacheTip: "Are you sure you want to refresh the parameter configuration cache?", refreshCacheOk: "Refresh Cache Successful", }, + loginSource: { + uid: "UID", + name: "Name", + namePlease: 'Please enter the authentication source name correctly', + icon: "Icon", + iconPlease: 'You can enter the image link or upload the image path address', + type: "Type", + activeFlag: "Status", + remark: "Remark", + createTime: "Create Time", + updateTime: "Update Time", + ldapUrl: "Server Address", + ldapUrlPlease: 'Please enter the LDAP server address correctly', + ldapBaseDN: "Base DN", + baseDnPlease: 'Please enter the LDAP base DN correctly', + ldapUserFilter: "User Filter", + userFilterPlease: 'Please enter the LDAP user filter correctly', + ldapBindDN: "Bind DN", + ldapBindPassword: "Bind Password", + smtpHost: 'Server Address', + smtpHostPlease: 'Please enter the SMTP server address correctly', + smtpPort: 'Port Number', + smtpPortPlease: 'Please enter the SMTP port number correctly', + oauth2ClientID: 'Client ID', + oauth2ClientIDPlease: 'Please enter the OAuth2 client ID correctly', + oauth2ClientSecret: 'Client Secret', + oauth2ClientSecretPlease: 'Please enter the OAuth2 client secret correctly', + oauth2AuthURL: 'Authorization URL', + oauth2AuthURLPlease: 'Please enter the OAuth2 authorization URL correctly', + oauth2TokenURL: 'Token URL', + oauth2TokenURLPlease: 'Please enter the OAuth2 token URL correctly', + oauth2UserURL: 'User Info URL', + oauth2UserURLPlease: 'Please enter the OAuth2 user info URL correctly', + oauth2AccountField: 'Account Field', + oauth2AccountFieldPlease: 'Please enter the OAuth2 account field correctly', + oauth2Scopes: 'Scopes', + oauth2ScopesPlease: 'Please enter the OAuth2 scopes correctly', + oauth2RedirectURL: 'Redirect URL', + oauth2RedirectURLPlease: 'Please enter the OAuth2 redirect URL correctly', + oauth2RedirectURLTip: 'Please jump to the specified path (omchost/#/login/oauth2), redirect with code and state address parameters', + uploadFileTip: 'Confirm to upload the authentication source icon?', + uploadFileOk: 'Authentication source icon upload successful', + uploadFileErr: 'Authentication source icon upload failed', + viewInfoErr: "Failed to get authentication source information", + addInfo: "Add Authentication Source", + editInfo: "Modify Authentication Source", + delTip: "Confirm deleting the authentication source number [{num}] data item?", + delOk: "Deleted Successfully", + }, setting: { charMaxLen: 'characters length', saveSubmit: 'Submit&Save', diff --git a/src/i18n/locales/zh-CN.ts b/src/i18n/locales/zh-CN.ts index 532a3a23..d6a830a3 100644 --- a/src/i18n/locales/zh-CN.ts +++ b/src/i18n/locales/zh-CN.ts @@ -264,9 +264,13 @@ export default { registerBtn: '注册账号', loginBtn: '登录', loginSuccess: '登录成功', - loginMethod: '其他登录方式:', - loginMethodWX: '微信扫一扫登录', - loginMethodQQ: 'QQ扫码登录', + otherMethod: '其他方式', + backBtn: '返回', + backBtnLogin: '返回登录', + authorizedNotfound: '授权无效', + authorizedFailed: '授权失败', + authorizedSuccess: '授权成功', + redirectHome: '{i} 秒后跳转主页', }, register: { registerBtn: '注册', @@ -1702,8 +1706,9 @@ export default { userNum: '用户编号', account: '登录账号', userName: '用户昵称', - permission: '用户权限', + permission: '用户角色', className: '部门名称', + userType: '用户类型', loginIp: '登录地址', loginTime: '登录时间', status: '用户状态', @@ -1766,6 +1771,55 @@ export default { refreshCacheTip: "确定要刷新参数配置缓存吗?", refreshCacheOk: "刷新缓存成功", }, + loginSource: { + uid: "唯一标识", + name: "名称", + namePlease: '请正确输入认证源名称', + icon: "图标", + iconPlease: '可填入图片链接或上传图片路径地址', + type: "类型", + activeFlag: "状态", + remark: "备注说明", + createTime: "创建时间", + updateTime: "更新时间", + ldapUrl: "服务器地址", + ldapUrlPlease: '请正确输入LDAP 服务器地址', + ldapBaseDN: "基础DN", + baseDnPlease: '请正确输入LDAP 基础DN', + ldapUserFilter: "用户过滤", + userFilterPlease: '请正确输入LDAP 用户过滤', + ldapBindDN: "绑定DN", + ldapBindPassword: "绑定密码", + smtpHost: '服务器地址', + smtpHostPlease: '请正确输入SMTP 服务器地址', + smtpPort: '端口号', + smtpPortPlease: '请正确输入SMTP 端口号', + oauth2ClientID: '客户端ID', + oauth2ClientIDPlease: '请正确输入OAuth2 客户端ID', + oauth2ClientSecret: '客户端密钥', + oauth2ClientSecretPlease: '请正确输入OAuth2 客户端密钥', + oauth2AuthURL: '授权URL', + oauth2AuthURLPlease: '请正确输入OAuth2 授权URL', + oauth2TokenURL: '令牌URL', + oauth2TokenURLPlease: '请正确输入OAuth2 令牌URL', + oauth2UserURL: '用户信息URL', + oauth2UserURLPlease: '请正确输入OAuth2 用户信息URL', + oauth2AccountField: '账号字段', + oauth2AccountFieldPlease: '请正确输入OAuth2 账号字段', + oauth2Scopes: '作用域', + oauth2ScopesPlease: '请正确输入OAuth2 作用域', + oauth2RedirectURL: '重定向URL', + oauth2RedirectURLPlease: '请正确输入OAuth2 重定向URL', + oauth2RedirectURLTip: '请跳转指定路径(omchost/#/login/oauth2), 重定向携带code和state地址参数', + uploadFileTip: '确认要上传认证源图标吗?', + uploadFileOk: '认证源图标上传成功', + uploadFileErr: '认证源图标上传失败', + viewInfoErr: "获取认证源信息失败", + addInfo: "添加认证源", + editInfo: "修改认证源", + delTip: "确认删除认证源编号为 【{num}】 的数据项?", + delOk: "删除成功", + }, setting: { charMaxLen: '位字符长度', saveSubmit: '提交保存', diff --git a/src/layouts/components/RightContent.vue b/src/layouts/components/RightContent.vue index 7ca4ad41..64b85eb4 100644 --- a/src/layouts/components/RightContent.vue +++ b/src/layouts/components/RightContent.vue @@ -80,7 +80,12 @@ function fnChangeLocale(e: any) { - + +