user.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. /**
  2. * 用户相关服务
  3. */
  4. const api = require('../config/api.js');
  5. /**
  6. * 调用微信登录
  7. */
  8. function loginByWeixin() {
  9. let code = null;
  10. return new Promise(function (resolve, reject) {
  11. return login().then((loginRes) => {
  12. code = loginRes.code;
  13. return getUserInfo();
  14. }).then((userInfoRes) => {
  15. //登录远程服务器
  16. wx.request({
  17. url: api.AuthLoginByWeixin,
  18. data: {
  19. code: code, userInfo: userInfoRes, storeId: wx.getStorageSync('storeId'),merchSn:wx.getStorageSync('merchSn')
  20. },
  21. method: 'POST',
  22. header: {
  23. 'Content-Type': 'application/json'
  24. },
  25. success: function (res) {
  26. if (res.data.errno === 0) {
  27. //存储用户信息
  28. if (res.data.data.userInfo) {
  29. wx.setStorageSync('userInfo', res.data.data.userInfo);
  30. }
  31. if (res.data.data.token) {
  32. wx.setStorageSync('token', res.data.data.token);
  33. }
  34. wx.setStorageSync('userId', res.data.data.userId);
  35. resolve(res);
  36. } else {
  37. reject(res);
  38. }
  39. },
  40. fail: function (err) {
  41. reject(err)
  42. console.log("failed")
  43. }
  44. });
  45. });
  46. });
  47. }
  48. /**
  49. * 判断用户是否登录
  50. */
  51. function checkLogin() {
  52. return new Promise(function (resolve, reject) {
  53. if (!wx.getStorageSync('userInfo') || !wx.getStorageSync('token')) {
  54. checkSession().then(() => {
  55. resolve(true);
  56. }).catch(() => {
  57. reject(false);
  58. });
  59. } else {
  60. reject(false);
  61. }
  62. });
  63. }
  64. /**
  65. * 调用微信登录
  66. */
  67. function login() {
  68. return new Promise(function (resolve, reject) {
  69. wx.login({
  70. success: function (res) {
  71. if (res.code) {
  72. //登录远程服务器
  73. resolve(res);
  74. } else {
  75. reject(res);
  76. }
  77. },
  78. fail: function (err) {
  79. reject(err);
  80. }
  81. });
  82. });
  83. }
  84. function getUserInfo() {
  85. return new Promise(function (resolve, reject) {
  86. wx.getUserInfo({
  87. withCredentials: true,
  88. success: function (res) {
  89. resolve(res);
  90. },
  91. fail: function (err) {
  92. reject(err);
  93. wx.navigateTo({
  94. url: '/pages/auth/btnAuth/btnAuth',
  95. })
  96. }
  97. })
  98. });
  99. }
  100. /**
  101. * 检查微信会话是否过期
  102. */
  103. function checkSession() {
  104. return new Promise(function (resolve, reject) {
  105. wx.checkSession({
  106. success: function () {
  107. resolve(true);
  108. },
  109. fail: function () {
  110. reject(false);
  111. }
  112. })
  113. });
  114. }
  115. module.exports = {
  116. loginByWeixin,
  117. checkLogin,
  118. checkSession,
  119. login,
  120. getUserInfo,
  121. };