login.ts 2.0 KB

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