login.ts 1.9 KB

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