feat: add login kv by web
This commit is contained in:
@@ -2,9 +2,11 @@ import { query } from './query.ts';
|
||||
import { createMessage } from '../pages/kv-message.ts';
|
||||
import { WX_MP_APP_ID } from '../pages/kv-login.ts';
|
||||
import { emit } from './mitt.ts';
|
||||
import { Query } from '@kevisual/query';
|
||||
import { QueryLoginBrowser } from '@kevisual/api/login'
|
||||
export const message = createMessage();
|
||||
type LoginOpts = {
|
||||
loginMethod: 'password' | 'phone' | 'wechat' | 'wechat-mp' | 'wechat-mp-ticket',
|
||||
loginMethod: 'password' | 'web' | 'phone' | 'wechat' | 'wechat-mp' | 'wechat-mp-ticket',
|
||||
data: any,
|
||||
el: HTMLElement
|
||||
}
|
||||
@@ -40,10 +42,28 @@ export const loginHandle = async (opts: LoginOpts) => {
|
||||
case 'wechat':
|
||||
await loginByWeChat(data)
|
||||
break
|
||||
case 'web':
|
||||
await loginByWeb(data)
|
||||
break
|
||||
default:
|
||||
console.warn('未知的登录方式:', loginMethod)
|
||||
}
|
||||
}
|
||||
const loginByWeb = async (data: {}) => {
|
||||
const url = new URL("https://kevisual.cn/api/router");
|
||||
const query = new Query({ url: "https://kevisual.cn/api/router" })
|
||||
const login = new QueryLoginBrowser({ query })
|
||||
// @ts-ignore
|
||||
const res = login.loginWithWeb(url.origin, {})
|
||||
console.log('打开网页登录:', res)
|
||||
window.open(res.url, '_blank');
|
||||
const status = await login.pollLoginStatus(res);
|
||||
if (status) {
|
||||
redirectHome()
|
||||
} else {
|
||||
message.error('网页登录失败,请重试')
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 使用用户名和密码登录
|
||||
* @param data
|
||||
|
||||
Reference in New Issue
Block a user