auth.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import request from "@/utils/request";
  2. const AUTH_BASE_URL = "/api/v1/auth";
  3. class AuthAPI {
  4. /** 登录 接口*/
  5. static login(data: LoginData) {
  6. const formData = new FormData();
  7. formData.append("username", data.username);
  8. formData.append("password", data.password);
  9. formData.append("captchaKey", data.captchaKey);
  10. formData.append("captchaCode", data.captchaCode);
  11. return request<any, LoginResult>({
  12. url: `${AUTH_BASE_URL}/login`,
  13. method: "post",
  14. data: formData,
  15. headers: {
  16. "Content-Type": "multipart/form-data",
  17. },
  18. });
  19. }
  20. /** 注销 接口*/
  21. static logout() {
  22. return request({
  23. url: `${AUTH_BASE_URL}/logout`,
  24. method: "delete",
  25. });
  26. }
  27. /** 获取验证码 接口*/
  28. static getCaptcha() {
  29. return request<any, CaptchaResult>({
  30. url: `${AUTH_BASE_URL}/captcha`,
  31. method: "get",
  32. });
  33. }
  34. }
  35. export default AuthAPI;
  36. /** 登录请求参数 */
  37. export interface LoginData {
  38. /** 用户名 */
  39. username: string;
  40. /** 密码 */
  41. password: string;
  42. /** 验证码缓存key */
  43. captchaKey: string;
  44. /** 验证码 */
  45. captchaCode: string;
  46. }
  47. /** 登录响应 */
  48. export interface LoginResult {
  49. /** 访问token */
  50. accessToken?: string;
  51. /** 过期时间(单位:毫秒) */
  52. expires?: number;
  53. /** 刷新token */
  54. refreshToken?: string;
  55. /** token 类型 */
  56. tokenType?: string;
  57. }
  58. /** 验证码响应 */
  59. export interface CaptchaResult {
  60. /** 验证码缓存key */
  61. captchaKey: string;
  62. /** 验证码图片Base64字符串 */
  63. captchaBase64: string;
  64. }