login.ts 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  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. },
  23. method: 'post',
  24. data: params
  25. });
  26. }
  27. // 注册方法
  28. export function register(data: any) {
  29. return request({
  30. url: '/auth/register',
  31. headers: {
  32. isToken: false
  33. },
  34. method: 'post',
  35. data: data
  36. });
  37. }
  38. /**
  39. * 注销
  40. */
  41. export function logout() {
  42. return request({
  43. url: '/auth/logout',
  44. method: 'post'
  45. });
  46. }
  47. /**
  48. * 获取验证码
  49. */
  50. export function getCodeImg(): AxiosPromise<VerifyCodeResult> {
  51. return request({
  52. url: '/auth/code',
  53. headers: {
  54. isToken: false
  55. },
  56. method: 'get',
  57. timeout: 20000
  58. });
  59. }
  60. /**
  61. * 第三方登录
  62. */
  63. export function callback(data: LoginData): AxiosPromise<any> {
  64. const LoginData = {
  65. ...data,
  66. clientId: clientId,
  67. grantType: 'social'
  68. };
  69. return request({
  70. url: '/auth/social/callback',
  71. method: 'post',
  72. data: LoginData
  73. });
  74. }
  75. // 获取用户详细信息
  76. export function getInfo(): AxiosPromise<UserInfo> {
  77. return request({
  78. url: '/system/user/getInfo',
  79. method: 'get'
  80. });
  81. }
  82. // 获取租户列表
  83. export function getTenantList(): AxiosPromise<TenantInfo> {
  84. return request({
  85. url: '/auth/tenant/list',
  86. headers: {
  87. isToken: false
  88. },
  89. method: 'get'
  90. });
  91. }