login.ts 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. import type { IAuthLoginRes, ICaptcha, IDoubleTokenRes, IUpdateInfo, IUpdatePassword, IUserInfoRes } from './types/login'
  2. import { http } from '@/http/http'
  3. /**
  4. * 登录表单
  5. */
  6. export interface ILoginForm {
  7. username: string
  8. password: string
  9. code: string
  10. uuid: string
  11. }
  12. /**
  13. * 获取验证码
  14. * @returns ICaptcha 验证码
  15. */
  16. export function getCode() {
  17. return http.get<ICaptcha>('/user/getCode')
  18. }
  19. /**
  20. * 用户登录
  21. * @param loginForm 登录表单
  22. */
  23. export function login(loginForm: ILoginForm) {
  24. return http.post<IAuthLoginRes>('/auth/login', loginForm)
  25. }
  26. /**
  27. * 刷新token
  28. * @param refreshToken 刷新token
  29. */
  30. export function refreshToken(refreshToken: string) {
  31. return http.post<IDoubleTokenRes>('/auth/refreshToken', { refreshToken })
  32. }
  33. /**
  34. * 获取用户信息
  35. */
  36. export function getUserInfo() {
  37. return http.get<IUserInfoRes>('/user/info')
  38. }
  39. /**
  40. * 退出登录
  41. */
  42. export function logout() {
  43. return http.get<void>('/auth/logout')
  44. }
  45. /**
  46. * 修改用户信息
  47. */
  48. export function updateInfo(data: IUpdateInfo) {
  49. return http.post('/user/updateInfo', data)
  50. }
  51. /**
  52. * 修改用户密码
  53. */
  54. export function updateUserPassword(data: IUpdatePassword) {
  55. return http.post('/user/updatePassword', data)
  56. }
  57. /**
  58. * 获取微信登录凭证
  59. * @returns Promise 包含微信登录凭证(code)
  60. */
  61. export function getWxCode() {
  62. return new Promise<UniApp.LoginRes>((resolve, reject) => {
  63. uni.login({
  64. provider: 'weixin',
  65. success: res => resolve(res),
  66. fail: err => reject(new Error(err)),
  67. })
  68. })
  69. }
  70. /**
  71. * 微信登录
  72. * @param params 微信登录参数,包含code
  73. * @returns Promise 包含登录结果
  74. */
  75. export function wxLogin(data: { code: string }) {
  76. return http.post<IAuthLoginRes>('/auth/wxLogin', data)
  77. }