user.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. /**
  2. * 用户相关服务
  3. */
  4. import store from '@/store'
  5. import request from '@/common/request'
  6. /**
  7. * Promise封装wx.checkSession
  8. */
  9. function checkSession() {
  10. return new Promise(function(resolve, reject) {
  11. wx.checkSession({
  12. success: function() {
  13. resolve(true);
  14. },
  15. fail: function() {
  16. reject(false);
  17. }
  18. })
  19. });
  20. }
  21. /**
  22. * Promise封装wx.login
  23. */
  24. function login() {
  25. return new Promise(function(resolve, reject) {
  26. wx.login({
  27. success: function(res) {
  28. if (res.code) {
  29. resolve(res);
  30. } else {
  31. reject(res);
  32. }
  33. },
  34. fail: function(err) {
  35. reject(err);
  36. }
  37. });
  38. });
  39. }
  40. /**
  41. * 调用微信登录
  42. */
  43. function loginByWeixinCode() {
  44. return new Promise(function(resolve, reject) {
  45. return login().then((res) => {
  46. var code = res.code;
  47. //登录远程服务器
  48. request.post('/api/common/login', {
  49. wechat_code: code
  50. }).then(res => {
  51. if (res.code == 200) {
  52. if (res.data.token) {
  53. store.commit('setJwt', res.data.token);
  54. store.commit('setUser', res.data);
  55. store.commit('login');
  56. resolve(res);
  57. } else {
  58. uni.showToast({
  59. title: '登录失败'
  60. })
  61. reject(res);
  62. }
  63. } else {
  64. reject(res);
  65. }
  66. }).catch((err) => {
  67. reject(err);
  68. });
  69. }).catch((err) => {
  70. reject(err);
  71. })
  72. });
  73. }
  74. /**
  75. * 调用微信登录
  76. */
  77. function loginByWeixin(userInfo) {
  78. return new Promise(function(resolve, reject) {
  79. return login().then((res) => {
  80. var code = res.code;
  81. //登录远程服务器
  82. request.post('/api/common/login', {
  83. up_id: uni.getStorageSync("up_id"),
  84. wechat_code: code,
  85. nickname: userInfo.nickName,
  86. avatar: userInfo.avatarUrl,
  87. }).then(res => {
  88. if (res.code == 200) {
  89. if (res.data.token) {
  90. store.commit('setJwt', res.data.token);
  91. store.commit('setUser', res.data);
  92. store.commit('login');
  93. resolve(res);
  94. } else {
  95. reject(res);
  96. }
  97. } else {
  98. reject(res);
  99. }
  100. }).catch((err) => {
  101. reject(err);
  102. });
  103. }).catch((err) => {
  104. reject(err);
  105. })
  106. });
  107. }
  108. /**
  109. * 判断用户是否登录
  110. */
  111. function checkLogin() {
  112. return new Promise(function(resolve, reject) {
  113. if (store.getters['verifyJwt']) {
  114. checkSession().then(() => {
  115. resolve(true);
  116. }).catch(() => {
  117. reject(false);
  118. });
  119. } else {
  120. reject(false);
  121. }
  122. });
  123. }
  124. module.exports = {
  125. loginByWeixin,
  126. loginByWeixinCode,
  127. checkLogin,
  128. };