user.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. const { Random } = require('mockjs')
  2. const tokens = {
  3. admin: `admin-token-${Random.guid()}-${new Date().getTime()}`,
  4. editor: `editor-token-${Random.guid()}-${new Date().getTime()}`,
  5. test: `test-token-${Random.guid()}-${new Date().getTime()}`,
  6. }
  7. const username2role = {
  8. admin: ['Admin'],
  9. editor: ['Editor'],
  10. test: ['Admin', 'Editor'],
  11. }
  12. const role2permission = {
  13. Admin: ['read:system', 'write:system', 'delete:system'],
  14. Editor: ['read:system', 'write:system'],
  15. Test: ['read:system'],
  16. }
  17. module.exports = [
  18. {
  19. url: '/login',
  20. type: 'post',
  21. response(config) {
  22. const { username } = config.body
  23. const token = tokens[username]
  24. if (!token)
  25. return {
  26. code: 500,
  27. msg: '帐户或密码不正确',
  28. }
  29. return {
  30. code: 200,
  31. msg: 'success',
  32. data: { token },
  33. }
  34. },
  35. },
  36. {
  37. url: '/userInfo',
  38. type: 'get',
  39. response(config) {
  40. const authorization =
  41. config.headers.authorization || config.headers.Authorization
  42. if (!authorization.startsWith('Bearer '))
  43. return {
  44. code: 401,
  45. msg: '令牌无效',
  46. }
  47. const username = authorization.replace('Bearer ', '').split('-token-')[0]
  48. const roles = username2role[username] || []
  49. const permissions = [
  50. ...new Set(roles.flatMap((role) => role2permission[role])),
  51. ]
  52. return {
  53. code: 200,
  54. msg: 'success',
  55. data: {
  56. username,
  57. roles,
  58. permissions,
  59. avatar: 'https://i.gtimg.cn/club/item/face/img/2/16022_100.gif',
  60. },
  61. }
  62. },
  63. },
  64. {
  65. url: '/logout',
  66. type: 'get',
  67. response() {
  68. return {
  69. code: 200,
  70. msg: 'success',
  71. }
  72. },
  73. },
  74. {
  75. url: '/userManagement/getList',
  76. type: 'get',
  77. response() {
  78. return {
  79. code: 200,
  80. msg: 'success',
  81. data: {
  82. list: [
  83. {
  84. id: 1,
  85. username: '管理员',
  86. email: '123@123.com',
  87. roles: ['admin'],
  88. datatime: new Date().toLocaleString(),
  89. },
  90. ],
  91. total: 1,
  92. },
  93. }
  94. },
  95. },
  96. ]