login.ts 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. import request from '@/utils/request';
  2. import { AxiosPromise } from 'axios';
  3. import { LoginData, LoginResult, VerifyCodeResult, TenantInfo } from './types';
  4. import { UserInfo } from '@/api/system/user/types';
  5. // pc端固定客户端授权id
  6. const clientId = import.meta.env.VITE_APP_CLIENT_ID;
  7. /**
  8. * @param data {LoginData}
  9. * @returns
  10. */
  11. export function login(data: LoginData): AxiosPromise<LoginResult> {
  12. const params = {
  13. ...data,
  14. clientId: data.clientId || clientId,
  15. grantType: data.grantType || 'password'
  16. };
  17. return request({
  18. url: '/auth/login',
  19. headers: {
  20. isToken: false,
  21. isEncrypt: true,
  22. repeatSubmit: false
  23. },
  24. method: 'post',
  25. data: params
  26. });
  27. }
  28. // 注册方法
  29. export function register(data: any) {
  30. const params = {
  31. ...data,
  32. clientId: clientId,
  33. grantType: 'password'
  34. };
  35. return request({
  36. url: '/auth/register',
  37. headers: {
  38. isToken: false,
  39. isEncrypt: true,
  40. repeatSubmit: false
  41. },
  42. method: 'post',
  43. data: params
  44. });
  45. }
  46. /**
  47. * 注销
  48. */
  49. export function logout() {
  50. // if (import.meta.env.VITE_APP_SSE === 'true') {
  51. // request({
  52. // url: '/resource/sse/close',
  53. // method: 'get'
  54. // });
  55. // }
  56. return request({
  57. url: '/auth/logout',
  58. method: 'post'
  59. });
  60. }
  61. /**
  62. * 获取验证码
  63. */
  64. export function getCodeImg(): AxiosPromise<VerifyCodeResult> {
  65. return request({
  66. url: '/auth/code',
  67. headers: {
  68. isToken: false
  69. },
  70. method: 'get',
  71. timeout: 20000
  72. });
  73. }
  74. /**
  75. * 第三方登录
  76. */
  77. export function callback(data: LoginData): AxiosPromise<any> {
  78. const LoginData = {
  79. ...data,
  80. clientId: clientId,
  81. grantType: 'social'
  82. };
  83. return request({
  84. url: '/auth/social/callback',
  85. method: 'post',
  86. data: LoginData
  87. });
  88. }
  89. // 获取用户详细信息
  90. export function getInfo(): AxiosPromise<UserInfo> {
  91. return request({
  92. url: '/system/user/getInfo',
  93. method: 'get'
  94. });
  95. }
  96. // 获取租户列表
  97. export function getTenantList(isToken: boolean): AxiosPromise<TenantInfo> {
  98. return request({
  99. url: '/auth/tenant/list',
  100. headers: {
  101. isToken: isToken
  102. },
  103. method: 'get'
  104. });
  105. }