login.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  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. wx.setStorageSync("userInfo", res.userInfo);
  53. saveLogin({
  54. encryptedData: encodeURIComponent(res.encryptedData),
  55. iv: encodeURIComponent(res.iv),
  56. openid: app.globalData.openId,
  57. session_key: app.globalData.sessionKey
  58. }).then(data => {
  59. console.log("save", data)
  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. wx.setStorageSync("phone", data.data.hpUser.phone);
  66. // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
  67. // 所以此处加入 callback 以防止这种情况
  68. if (app.userInfoReadyCallback) {
  69. app.userInfoReadyCallback(res)
  70. }
  71. showToast("登录成功");
  72. setTimeout(function() {
  73. wx.navigateBack();
  74. }, 500)
  75. }).catch(data => {
  76. console.log("fgh", data)
  77. })
  78. }
  79. })
  80. },
  81. fail() {
  82. // session_key 已经失效,需要重新执行登录流程
  83. getWxCode().then(code => {
  84. return wxLogin({
  85. code: code
  86. })
  87. })
  88. .then(res => {
  89. console.log("dd", res)
  90. app.globalData.openId = res.data.openId ? res.data.openId : '';
  91. app.globalData.sessionKey = res.data.sessionKey ? res.data.sessionKey : '';
  92. })
  93. .then(data => {
  94. if (e.detail.userInfo) {
  95. return getUserInfo()
  96. } else {
  97. }
  98. })
  99. .then(res => {
  100. if (res) {
  101. wx.setStorageSync("userInfo", res.userInfo);
  102. saveLogin({
  103. encryptedData: encodeURIComponent(res.encryptedData),
  104. iv: encodeURIComponent(res.iv),
  105. openid: app.globalData.openId,
  106. session_key: app.globalData.sessionKey
  107. }).then(data => {
  108. console.log("save", data)
  109. wx.setStorageSync("hpuser", data.data.hpUser);
  110. wx.setStorageSync("hpMember", data.data.hpMember);
  111. wx.setStorageSync("user_id", data.data.hpUser.id);
  112. wx.setStorageSync("member_id", data.data.hpMember.id);
  113. wx.setStorageSync("user_token", data.data.hpUser.userToken);
  114. wx.setStorageSync("phone", data.data.hpUser.phone);
  115. // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
  116. // 所以此处加入 callback 以防止这种情况
  117. if (app.userInfoReadyCallback) {
  118. app.userInfoReadyCallback(res)
  119. }
  120. showToast("登录成功");
  121. setTimeout(function() {
  122. wx.navigateBack();
  123. }, 500)
  124. }).catch(data => {
  125. console.log("fgh", data)
  126. })
  127. }
  128. })
  129. }
  130. })
  131. }
  132. })