login.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. import {
  2. imgServerUrl
  3. } from '../../config/config.js'
  4. import {
  5. getWxCode,
  6. hasAuth,
  7. getUserInfo
  8. } from '../../utils/wx.js'
  9. import {
  10. updataStorageData
  11. } from '../../utils/storage.js'
  12. import {
  13. wxLogin,
  14. saveLogin
  15. } from '../../services/wx.js'
  16. import {
  17. showToast
  18. } from '../../utils/tips.js'
  19. var app = getApp()
  20. Page({
  21. data: {
  22. canIUse: wx.canIUse('button.open-type.getUserInfo'),
  23. imgServerUrl: imgServerUrl
  24. },
  25. onLoad: function() {
  26. },
  27. //用户授权
  28. bindGetUserInfo: function(e) {
  29. //检查登录态
  30. wx.checkSession({
  31. success() {
  32. //session_key 未过期,并且在本生命周期一直有效
  33. getWxCode().then(code => {
  34. return wxLogin({
  35. code: code
  36. })
  37. })
  38. .then(res => {
  39. console.log("dd", res)
  40. app.globalData.openId = res.data.openId ? res.data.openId : '';
  41. app.globalData.sessionKey = res.data.sessionKey ? res.data.sessionKey : '';
  42. })
  43. .then(data => {
  44. if (e.detail.userInfo) {
  45. return getUserInfo()
  46. } else {
  47. }
  48. })
  49. .then(res => {
  50. console.log("ddf", res)
  51. if (res) {
  52. saveLogin({
  53. encryptedData: encodeURIComponent(res.encryptedData),
  54. iv: encodeURIComponent(res.iv),
  55. openid: app.globalData.openId,
  56. session_key: app.globalData.sessionKey
  57. }).then(data => {
  58. console.log("save", data)
  59. wx.setStorageSync("userInfo", res.userInfo);
  60. wx.setStorageSync("hpuser", data.data.hpUser);
  61. wx.setStorageSync("hpMember", data.data.hpMember);
  62. wx.setStorageSync("user_id", data.data.hpUser.id);
  63. wx.setStorageSync("member_id", data.data.hpMember.id);
  64. wx.setStorageSync("user_token", data.data.hpUser.userToken);
  65. // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
  66. // 所以此处加入 callback 以防止这种情况
  67. if (app.userInfoReadyCallback) {
  68. app.userInfoReadyCallback(res)
  69. }
  70. showToast("登录成功");
  71. setTimeout(function() {
  72. wx.navigateBack();
  73. }, 500)
  74. }).catch(data => {
  75. console.log("fgh", data)
  76. })
  77. }
  78. })
  79. },
  80. fail() {
  81. // session_key 已经失效,需要重新执行登录流程
  82. getWxCode().then(code => {
  83. return wxLogin({
  84. code: code
  85. })
  86. })
  87. .then(res => {
  88. console.log("dd", res)
  89. app.globalData.openId = res.data.openId ? res.data.openId : '';
  90. app.globalData.sessionKey = res.data.sessionKey ? res.data.sessionKey : '';
  91. })
  92. .then(data => {
  93. if (e.detail.userInfo) {
  94. return getUserInfo()
  95. } else {
  96. }
  97. })
  98. .then(res => {
  99. if (res) {
  100. saveLogin({
  101. encryptedData: encodeURIComponent(res.encryptedData),
  102. iv: encodeURIComponent(res.iv),
  103. openid: app.globalData.openId,
  104. session_key: app.globalData.sessionKey
  105. }).then(data => {
  106. console.log("save", data)
  107. wx.setStorageSync("userInfo", res.userInfo);
  108. wx.setStorageSync("hpuser", data.data.hpUser);
  109. wx.setStorageSync("hpMember", data.data.hpMember);
  110. wx.setStorageSync("user_id", data.data.hpUser.id);
  111. wx.setStorageSync("member_id", data.data.hpMember.id);
  112. wx.setStorageSync("user_token", data.data.hpUser.userToken);
  113. // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
  114. // 所以此处加入 callback 以防止这种情况
  115. if (app.userInfoReadyCallback) {
  116. app.userInfoReadyCallback(res)
  117. }
  118. showToast("登录成功");
  119. setTimeout(function() {
  120. wx.navigateBack();
  121. }, 500)
  122. }).catch(data => {
  123. console.log("fgh", data)
  124. })
  125. }
  126. })
  127. }
  128. })
  129. }
  130. })