user.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  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/v1/common/wxLogin', {
  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. icon: "none"
  61. })
  62. reject(res);
  63. }
  64. } else {
  65. reject(res);
  66. }
  67. }).catch((err) => {
  68. reject(err);
  69. });
  70. }).catch((err) => {
  71. reject(err);
  72. })
  73. });
  74. }
  75. /**
  76. * 调用微信登录
  77. */
  78. function loginByWeixin(userInfo) {
  79. return new Promise(function(resolve, reject) {
  80. return login().then((res) => {
  81. var code = res.code;
  82. //登录远程服务器
  83. request.post('/api/v1/common/wxLogin', {
  84. // up_id: uni.getStorageSync("up_id"),
  85. wechat_code: code,
  86. nickname: userInfo.nickName,
  87. avatar: userInfo.avatarUrl,
  88. }).then(res => {
  89. if (res.status == 0) {
  90. if (res.data.token) {
  91. store.commit('setJwt', res.data.token);
  92. store.commit('setUser', res.data);
  93. store.commit('login');
  94. resolve(res);
  95. } else {
  96. reject(res);
  97. }
  98. } else {
  99. reject(res);
  100. }
  101. }).catch((err) => {
  102. reject(err);
  103. });
  104. }).catch((err) => {
  105. reject(err);
  106. })
  107. });
  108. }
  109. /**
  110. * 判断用户是否登录
  111. */
  112. function checkLogin() {
  113. return new Promise(function(resolve, reject) {
  114. if (store.getters['verifyJwt']) {
  115. checkSession().then(() => {
  116. resolve(true);
  117. }).catch(() => {
  118. reject(false);
  119. });
  120. } else {
  121. reject(false);
  122. }
  123. });
  124. }
  125. function islogin(res) {
  126. console.log(res)
  127. if (res.status != 0) {
  128. uni.showModal({
  129. title: "提示",
  130. content: "暂未登录,请登录",
  131. showCancel: false,
  132. confirmText: "去登录",
  133. success: (re) => {
  134. if (re.confirm) {
  135. uni.navigateTo({
  136. url: "/pages/login/login",
  137. })
  138. }
  139. }
  140. })
  141. } else {
  142. return true
  143. }
  144. }
  145. module.exports = {
  146. loginByWeixin,
  147. loginByWeixinCode,
  148. checkLogin,
  149. islogin
  150. };