loginSchedule.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. const request = require('./WXHttpRequest.js');
  2. const url = require('./const.js');
  3. const HOST = url.apiUrl;
  4. function genAPIUrl(action) {
  5. return HOST + action;
  6. }
  7. // 登录
  8. function wxLogin(successcallback, failcallback) {
  9. wx.showToast({
  10. title: '登录中...',
  11. icon: 'loading',
  12. duration: 1500
  13. })
  14. wx.login({
  15. success: function(res) {
  16. if (res.code) {
  17. // 获取openid
  18. let url = genAPIUrl('wx/ucenter/openId')
  19. let data = { code: res.code }
  20. return request.getInstance().url(url).data(data).send().success(successcallback).fail(failcallback);
  21. } else {
  22. console.log('获取用户登录态失败!' + res.errMsg)
  23. }
  24. }
  25. })
  26. }
  27. // 获取 openid 和 session_key
  28. function getOpenidSessionKey(successcallback, failcallback) {
  29. wxLogin(function(res) {
  30. //console.log('获取sessionKey等内容'+JSON.stringify(res.data));
  31. let sessionKey = res.data.session_key;
  32. //登录
  33. getLoginSchedule(sessionKey, successcallback, failcallback);
  34. },function(res) {
  35. failcallback(res);
  36. })
  37. }
  38. //登录
  39. function getLoginSchedule(sessionKey, successcallback, failcallback) {
  40. //获取个人信息
  41. wx.getUserInfo({
  42. success: function (res) {
  43. let userInfo = res.userInfo
  44. let url = genAPIUrl('wx/ucenter/user/loginRegist');
  45. const userData = {
  46. encryptedData: res.encryptedData,
  47. sessionKey: sessionKey,
  48. iv: res.iv,
  49. dist: '1133',
  50. headimgurl: userInfo.avatarUrl
  51. }
  52. request.getInstance().url(url).data(userData).method('GET').send().success(res => {
  53. wx.hideToast()
  54. wx.showToast({
  55. title: '登录成功',
  56. icon: 'success',
  57. duration: 1500
  58. })
  59. wx.setStorageSync('uid', res.data.data.uid)
  60. successcallback(res)
  61. });
  62. },
  63. fail: function(res) {
  64. failcallback(res)
  65. }
  66. })
  67. }
  68. module.exports = {
  69. getOpenidSessionKey
  70. }