user.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. import request from '@/utils/request'
  2. import { getRefreshToken } from '@/utils/auth'
  3. import { OAUTH2_URL } from '@/api/baseUrl'
  4. // 1、引入ibps-oauth包
  5. import IbpsOAuth from './oauth2'
  6. // import { GRANT_TYPE, CLIENT_ID, CLIENT_SECRET } from '@/constant'
  7. import { GRANT_TYPE } from '@/constant'
  8. // 2、生成一个OAuth的实例,clientId和clientSecert作为构造参数
  9. // const oauthApi = new IbpsOAuth(CLIENT_ID, CLIENT_SECRET)
  10. const oauthApi = new IbpsOAuth()
  11. /**
  12. * 用户登录
  13. * @param {*} username 用户名
  14. * @param {*} password 密码
  15. * @param {*} captcha 验证码
  16. * @param {*} requestId 验证码请求ID
  17. */
  18. export function login(params) {
  19. if (GRANT_TYPE === 'authorization_code') {
  20. return loginByCode(params)
  21. } else if (GRANT_TYPE === 'password_credentials') {
  22. return loginByPassword(params)
  23. }
  24. }
  25. /**
  26. * 通过[code授权]方式登录
  27. * @param {*} username 用户名
  28. * @param {*} password 密码
  29. * @param {*} captcha 验证码
  30. * @param {*} requestId 验证码请求ID
  31. */
  32. export function loginByCode(params) {
  33. return new Promise((resolve, reject) => {
  34. oauthApi.getLoginCode(params, function(error, res) {
  35. if (error) {
  36. return reject(error)
  37. }
  38. resolve(res)
  39. })
  40. })
  41. }
  42. /**
  43. * 通过[密码]授权方式登录
  44. * @param {*} username 用户名
  45. * @param {*} password 密码
  46. * @param {*} captcha 验证码
  47. * @param {*} requestId 验证码请求ID
  48. */
  49. export function loginByPassword(params) {
  50. return new Promise((resolve, reject) => {
  51. oauthApi.getAccessTokenByPassword(params, function(error, res) {
  52. if (error) {
  53. return reject(error)
  54. }
  55. resolve(res)
  56. })
  57. })
  58. }
  59. /**
  60. * 用户登出
  61. *
  62. */
  63. export function logout(accessToken) {
  64. return request({
  65. url: OAUTH2_URL() + '/user/logout',
  66. method: 'post',
  67. params: {
  68. access_token: accessToken
  69. }
  70. })
  71. }
  72. /**
  73. *获取验证码[匿名]
  74. */
  75. export function getValidCode(params) {
  76. return request({
  77. url: OAUTH2_URL() + '/user/captcha',
  78. method: 'get',
  79. params: params
  80. })
  81. }
  82. /**
  83. * 根据用户名, 获取用户上下文信息
  84. * @param {*} token
  85. */
  86. export function getUserInfo(username, load = true) {
  87. return request({
  88. url: OAUTH2_URL() + '/user/context',
  89. method: 'post',
  90. params: {
  91. username
  92. },
  93. isLoading: load
  94. })
  95. }
  96. /**
  97. * 刷新tonken
  98. */
  99. export function refreshAccessToken() {
  100. return new Promise((resolve, reject) => {
  101. oauthApi.refreshAccessToken(getRefreshToken(), function(error, res) {
  102. if (error) {
  103. return reject(error)
  104. }
  105. resolve(res)
  106. })
  107. })
  108. }
  109. /**
  110. * 微信登录
  111. * @param {*} params
  112. */
  113. export function wcLogin(params) {
  114. return request({
  115. url: OAUTH2_URL() + '/user/login/wechat/apply',
  116. anonymous: true,
  117. mask: true,
  118. method: 'post',
  119. data: params
  120. })
  121. }
  122. export function switchUser({ username, token }) {
  123. return request({
  124. url: OAUTH2_URL() + '/authentication/switch',
  125. method: 'post',
  126. data: {
  127. // 'client_id': CLIENT_ID,
  128. // 'client_secret': CLIENT_SECRET,
  129. 'grant_type': 'authorization_code',
  130. 'access_token': token,
  131. 'username': username
  132. }
  133. })
  134. }
  135. export function exitSwitchUser({ username, token }) {
  136. return request({
  137. url: OAUTH2_URL() + '/authentication/switch/exit',
  138. method: 'post',
  139. data: {
  140. // 'client_id': CLIENT_ID,
  141. // 'client_secret': CLIENT_SECRET,
  142. 'grant_type': 'authorization_code',
  143. 'access_token': token,
  144. 'username': username
  145. }
  146. })
  147. }
  148. /**
  149. * 是否开启注册
  150. */
  151. export function getRegisterOpen() {
  152. return request({
  153. url: OAUTH2_URL() + '/user/open',
  154. method: 'get'
  155. })
  156. }
  157. /**
  158. * 用户注册
  159. * @param {*} params
  160. */
  161. export function register(params) {
  162. return request({
  163. url: OAUTH2_URL() + '/user/register',
  164. method: 'post',
  165. data: params
  166. })
  167. }
  168. /**
  169. * 用户短信验证
  170. * @param {*} params
  171. */
  172. export function sendSms(params) {
  173. return request({
  174. url: OAUTH2_URL() + '/user/send/sms',
  175. method: 'get',
  176. params: params
  177. })
  178. }
  179. /**
  180. * 重置密码-注册用户使用
  181. * @param {*} params
  182. */
  183. export function resetPasswd(params) {
  184. return request({
  185. url: OAUTH2_URL() + '/user/reset/passwd',
  186. method: 'post',
  187. data: params
  188. })
  189. }