login.ts 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  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. return request({
  51. url: '/auth/logout',
  52. method: 'post'
  53. });
  54. }
  55. /**
  56. * 获取验证码
  57. */
  58. export function getCodeImg(): AxiosPromise<VerifyCodeResult> {
  59. return request({
  60. url: '/auth/code',
  61. headers: {
  62. isToken: false
  63. },
  64. method: 'get',
  65. timeout: 20000
  66. });
  67. }
  68. /**
  69. * 第三方登录
  70. */
  71. export function callback(data: LoginData): AxiosPromise<any> {
  72. const LoginData = {
  73. ...data,
  74. clientId: clientId,
  75. grantType: 'social'
  76. };
  77. return request({
  78. url: '/auth/social/callback',
  79. method: 'post',
  80. data: LoginData
  81. });
  82. }
  83. // 获取用户详细信息
  84. export function getInfo(): AxiosPromise<UserInfo> {
  85. return request({
  86. url: '/system/user/getInfo',
  87. method: 'get'
  88. });
  89. }
  90. // 获取租户列表
  91. export function getTenantList(): AxiosPromise<TenantInfo> {
  92. return request({
  93. url: '/auth/tenant/list',
  94. headers: {
  95. isToken: false
  96. },
  97. method: 'get'
  98. });
  99. }