user.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  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/v2/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('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. // console.log('我是res',res)
  90. if (res.status == 0) {
  91. if (res.data.openid) {
  92. // store.commit('setJwt', res.data.token);
  93. // store.commit('setUser', res.data);
  94. // store.commit('login');
  95. resolve(res);
  96. }else if(res.data.token){
  97. resolve(res);
  98. }else {
  99. reject(res);
  100. }
  101. } else {
  102. reject(res);
  103. }
  104. }).catch((err) => {
  105. reject(err);
  106. });
  107. }).catch((err) => {
  108. reject(err);
  109. })
  110. });
  111. }
  112. /**
  113. * 判断用户是否登录
  114. */
  115. function checkLogin() {
  116. return new Promise(function(resolve, reject) {
  117. if (store.getters['verifyJwt']) {
  118. checkSession().then(() => {
  119. resolve(true);
  120. }).catch(() => {
  121. reject(false);
  122. });
  123. } else {
  124. reject(false);
  125. }
  126. });
  127. }
  128. module.exports = {
  129. loginByWeixin,
  130. loginByWeixinCode,
  131. checkLogin,
  132. };