auth.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. const tokenKey = 'token'
  2. const usernameKey = 'WMS-username'
  3. const userInfoKey = 'WMS-userinfo'
  4. const permissionsKey = 'WMS-permission'
  5. import store from '@/store'
  6. function getStorage(key, defaultValue) {
  7. if (typeof key !== 'string' || !key || key === 'undefined') {
  8. return defaultValue;
  9. }
  10. try {
  11. const value = uni.getStorageSync(key);
  12. return value === undefined || value === null ? defaultValue : value;
  13. } catch (e) {
  14. console.error('getStorageSync failed:', key, e);
  15. return defaultValue;
  16. }
  17. }
  18. // 获取token值
  19. function getUserToken(){
  20. return getStorage(tokenKey, null);
  21. }
  22. function setUserToken(token){
  23. uni.setStorageSync(tokenKey,token);
  24. }
  25. function removeUserToken(){
  26. uni.removeStorageSync(tokenKey);
  27. }
  28. // 获取用户名
  29. function getUsername(){
  30. return getStorage(usernameKey, null);
  31. }
  32. function setUsername(username){
  33. uni.setStorageSync(usernameKey,username);
  34. }
  35. function removeUsername(){
  36. uni.removeStorageSync(usernameKey);
  37. }
  38. // 获取用户信息
  39. function getUserInfo(){
  40. return getStorage(userInfoKey, {});
  41. }
  42. function setUserInfo(userinfo){
  43. uni.setStorageSync(userInfoKey,userinfo);
  44. }
  45. function removeUserInfo(){
  46. uni.removeStorageSync(userInfoKey);
  47. }
  48. // 获取用户权限
  49. function getPermissions(){
  50. return getStorage(permissionsKey, []);
  51. }
  52. function setPermissions(permissions){
  53. uni.setStorageSync(permissionsKey,permissions);
  54. }
  55. function removePermissions(){
  56. uni.removeStorageSync(permissionsKey);
  57. }
  58. function hasPermission (key) {
  59. return getStorage(permissionsKey, []).indexOf(key) !== -1 || false
  60. }
  61. function checkLogin () {
  62. if (!store.state.user.token) {
  63. uni.showModal({
  64. title: '未登录',
  65. content: '您未登录,需要登录后才能继续',
  66. /**
  67. * 如果需要强制登录,不显示取消按钮
  68. */
  69. showCancel: !store.state.user.forcedLogin,
  70. success: (res) => {
  71. if (res.confirm) {
  72. /**
  73. * 如果需要强制登录,使用reLaunch方式
  74. */
  75. if (store.state.user.forcedLogin) {
  76. uni.reLaunch({
  77. url: '/pages/login/login'
  78. });
  79. } else {
  80. uni.navigateTo({
  81. url: '/pages/login/login'
  82. });
  83. }
  84. }
  85. }
  86. });
  87. }
  88. }
  89. export {
  90. getUserToken,
  91. setUserToken,
  92. removeUserToken,
  93. getUsername,
  94. setUsername,
  95. removeUsername,
  96. getUserInfo,
  97. setUserInfo,
  98. removeUserInfo,
  99. getPermissions,
  100. setPermissions,
  101. removePermissions,
  102. hasPermission,
  103. checkLogin
  104. }