user.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import request, {getLockRequest, lockRequest, unlockRequest} from "./request.ts";
  2. export type LoginReq = {
  3. account: string
  4. password: string
  5. }
  6. export type RegisterReq = LoginReq & {
  7. nickname?: string
  8. }
  9. export type SSOReq = {
  10. code: string
  11. scope: string
  12. state: string
  13. }
  14. /**
  15. * 登录相关的API
  16. */
  17. export const LoginApis = {
  18. login: (data: LoginReq) => {
  19. return request.post('/user/login', data)
  20. },
  21. signUp: (data: RegisterReq) => request.post('/user/register', data),
  22. /**
  23. * 加锁,避免多次访问,多次弹窗
  24. */
  25. userinfo: () => {
  26. let promise = getLockRequest()
  27. if (promise){
  28. return promise
  29. }
  30. promise = request.get('/user/info', { disableErrorMsg: true } as never)
  31. const block = lockRequest(promise);
  32. if (block){
  33. promise.finally(()=>unlockRequest())
  34. }
  35. return promise;
  36. },
  37. oauth2Url: ()=> request.get('/oauth2'),
  38. oauth2Callback: (data: SSOReq) => request.post('/oauth2/callback', data, { disableErrorMsg: true } as never)
  39. }