user.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  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, (error, res) => {
  35. if (error) {
  36. return reject(error)
  37. }
  38. res.data.statistic = oauthApi.statistic
  39. resolve(res)
  40. })
  41. })
  42. }
  43. /**
  44. * 通过[密码]授权方式登录
  45. * @param {*} username 用户名
  46. * @param {*} password 密码
  47. * @param {*} captcha 验证码
  48. * @param {*} requestId 验证码请求ID
  49. */
  50. export function loginByPassword(params) {
  51. return new Promise((resolve, reject) => {
  52. oauthApi.getAccessTokenByPassword(params, function (error, res) {
  53. if (error) {
  54. return reject(error)
  55. }
  56. console.log(res)
  57. resolve(res)
  58. })
  59. })
  60. }
  61. /**
  62. * 用户登出
  63. *
  64. */
  65. export function logout(accessToken) {
  66. return request({
  67. url: OAUTH2_URL() + '/user/logout',
  68. method: 'post',
  69. params: {
  70. access_token: accessToken
  71. }
  72. })
  73. }
  74. /**
  75. *获取验证码[匿名]
  76. */
  77. export function getValidCode(params) {
  78. return request({
  79. url: OAUTH2_URL() + '/user/captcha',
  80. method: 'get',
  81. params: params
  82. })
  83. }
  84. /**
  85. * 根据用户名, 获取用户上下文信息
  86. * @param {*} token
  87. */
  88. export function getUserInfo(username) {
  89. return request({
  90. url: OAUTH2_URL() + '/user/context',
  91. method: 'post',
  92. params: {
  93. username
  94. }
  95. })
  96. }
  97. /**
  98. * 刷新tonken
  99. */
  100. export function refreshAccessToken() {
  101. return new Promise((resolve, reject) => {
  102. oauthApi.refreshAccessToken(getRefreshToken(), function (error, res) {
  103. if (error) {
  104. return reject(error)
  105. }
  106. resolve(res)
  107. })
  108. })
  109. }
  110. export function switchUser({ username, token }) {
  111. return request({
  112. url: OAUTH2_URL() + '/authentication/switch',
  113. method: 'post',
  114. data: {
  115. // 'client_id': CLIENT_ID,
  116. // 'client_secret': CLIENT_SECRET,
  117. grant_type: 'authorization_code',
  118. access_token: token,
  119. username: username
  120. }
  121. })
  122. }
  123. export function exitSwitchUser({ username, token }) {
  124. return request({
  125. url: OAUTH2_URL() + '/authentication/switch/exit',
  126. method: 'post',
  127. data: {
  128. // 'client_id': CLIENT_ID,
  129. // 'client_secret': CLIENT_SECRET,
  130. grant_type: 'authorization_code',
  131. access_token: token,
  132. username: username
  133. }
  134. })
  135. }
  136. /**
  137. * 是否开启注册
  138. */
  139. export function getRegisterOpen() {
  140. return request({
  141. url: OAUTH2_URL() + '/user/open',
  142. method: 'get'
  143. })
  144. }
  145. /**
  146. * 用户注册
  147. * @param {*} params
  148. */
  149. export function register(params) {
  150. return request({
  151. url: OAUTH2_URL() + '/user/register',
  152. method: 'post',
  153. data: params
  154. })
  155. }
  156. /**
  157. * 用户短信验证
  158. * @param {*} params
  159. */
  160. export function sendSms(params) {
  161. return request({
  162. url: OAUTH2_URL() + '/user/send/sms',
  163. method: 'get',
  164. params: params
  165. })
  166. }
  167. /**
  168. * 用户短信验证码
  169. * @param {*} params
  170. */
  171. export function sendSmsTenant(params) {
  172. return request({
  173. url: OAUTH2_URL() + '/user/send/sms/tenant',
  174. method: 'get',
  175. params: params
  176. })
  177. }
  178. /**
  179. * 重置密码-注册用户使用
  180. * @param {*} params
  181. */
  182. export function resetPasswd(params) {
  183. return request({
  184. url: OAUTH2_URL() + '/user/reset/passwd',
  185. method: 'post',
  186. data: params
  187. })
  188. }
  189. /**
  190. * 重置密码-企业租户用户使用
  191. * @param {*} params
  192. */
  193. export function resetTenantPasswd(params) {
  194. return request({
  195. url: OAUTH2_URL() + '/user/reset/passwd/tenant',
  196. method: 'post',
  197. data: params
  198. })
  199. }
  200. /**
  201. * 是否开启租户模式
  202. */
  203. export function open() {
  204. return request({
  205. url: OAUTH2_URL() + '/user/open/tenant',
  206. method: 'get'
  207. })
  208. }
  209. /**
  210. * 更新许可证
  211. * @param {String} username 用户名
  212. * @param {String} licence 许可证
  213. */
  214. export function updateLicence(params) {
  215. return request({
  216. url: OAUTH2_URL() + '/authentication/updateLicense',
  217. method: 'post',
  218. data: params
  219. })
  220. }