login.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. import {
  2. imgServerUrl
  3. } from '../../config/config.js'
  4. import {
  5. getWxCode,
  6. getUserInfo
  7. } from '../../utils/wx.js'
  8. import {
  9. wxLogin,
  10. saveLogin
  11. } from '../../services/wx.js'
  12. import { saveHpUserLog } from '../../services/index'
  13. import {
  14. showToast
  15. } from '../../utils/tips.js'
  16. var app = getApp()
  17. Page({
  18. data: {
  19. canIUse: wx.canIUse('button.open-type.getUserInfo'),
  20. imgServerUrl: imgServerUrl,
  21. disabled: false,
  22. title: '登录开心工作'
  23. },
  24. onLoad: function () {
  25. },
  26. // 获取验证码
  27. toCheck(e) {
  28. const { phone } = e.detail;
  29. wx.navigateTo({
  30. url: `/pages/check-iphone/index?phone=${phone}&&title=${this.data.title}&&url=${'/pages/index/index'}&&auto_send=${true}`,
  31. })
  32. },
  33. //用户授权
  34. bindGetUserInfo: function (e) {
  35. var self = this;
  36. if (!self.data.disabled) {
  37. self.setData({
  38. disabled: true
  39. })
  40. //检查登录态
  41. wx.checkSession({
  42. success() {
  43. //session_key 未过期,并且在本生命周期一直有效
  44. getWxCode().then(code => {
  45. return wxLogin({
  46. code: code
  47. })
  48. })
  49. .then(res => {
  50. wx.aldPushSendOpenid(res.data.openId)
  51. app.globalData.openId = res.data.openId ? res.data.openId : '';
  52. app.globalData.sessionKey = res.data.sessionKey ? res.data.sessionKey : '';
  53. })
  54. .then(() => {
  55. if (e.detail.userInfo) {
  56. return getUserInfo()
  57. } else {
  58. }
  59. })
  60. .then(res => {
  61. if (res) {
  62. wx.setStorageSync("userInfo", res.userInfo);
  63. saveLogin({
  64. encryptedData: encodeURIComponent(res.encryptedData),
  65. iv: encodeURIComponent(res.iv),
  66. openid: app.globalData.openId,
  67. session_key: app.globalData.sessionKey
  68. }).then(data => {
  69. wx.setStorageSync("hpuser", data.data.hpUser);
  70. wx.setStorageSync("hpMember", data.data.hpMember);
  71. wx.setStorageSync("user_id", data.data.hpUser.id);
  72. wx.setStorageSync("member_id", data.data.hpMember.id);
  73. wx.setStorageSync("user_token", data.data.hpUser.userToken);
  74. wx.setStorageSync("phone", data.data.hpUser.phone);
  75. // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
  76. // 所以此处加入 callback 以防止这种情况
  77. if (app.userInfoReadyCallback) {
  78. app.userInfoReadyCallback(res)
  79. }
  80. showToast("登录成功");
  81. saveHpUserLog({
  82. user_id: data.data.hpUser.id,
  83. user_token: data.data.hpUser.userToken,
  84. member_id: data.data.hpMember.id,
  85. login_type: 0
  86. })
  87. setTimeout(function () {
  88. wx.navigateBack({
  89. delta: 1,
  90. fail: () => {
  91. wx.switchTab({
  92. url: '/pages/index/index',
  93. })
  94. }
  95. });
  96. }, 500)
  97. }).catch(data => {
  98. console.log("fgh", data)
  99. })
  100. }
  101. })
  102. },
  103. fail() {
  104. // session_key 已经失效,需要重新执行登录流程
  105. getWxCode().then(code => {
  106. return wxLogin({
  107. code: code
  108. })
  109. })
  110. .then(res => {
  111. app.globalData.openId = res.data.openId ? res.data.openId : '';
  112. app.globalData.sessionKey = res.data.sessionKey ? res.data.sessionKey : '';
  113. })
  114. .then(() => {
  115. if (e.detail.userInfo) {
  116. return getUserInfo()
  117. } else {
  118. }
  119. })
  120. .then(res => {
  121. if (res) {
  122. wx.setStorageSync("userInfo", res.userInfo);
  123. saveLogin({
  124. encryptedData: encodeURIComponent(res.encryptedData),
  125. iv: encodeURIComponent(res.iv),
  126. openid: app.globalData.openId,
  127. session_key: app.globalData.sessionKey
  128. }).then(data => {
  129. wx.setStorageSync("hpuser", data.data.hpUser);
  130. wx.setStorageSync("hpMember", data.data.hpMember);
  131. wx.setStorageSync("user_id", data.data.hpUser.id);
  132. wx.setStorageSync("member_id", data.data.hpMember.id);
  133. wx.setStorageSync("user_token", data.data.hpUser.userToken);
  134. wx.setStorageSync("phone", data.data.hpUser.phone);
  135. // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
  136. // 所以此处加入 callback 以防止这种情况
  137. if (app.userInfoReadyCallback) {
  138. app.userInfoReadyCallback(res)
  139. }
  140. showToast("登录成功");
  141. setTimeout(function () {
  142. wx.navigateBack({
  143. fail: () => {
  144. wx.switchTab({
  145. url: '/pages/index/index',
  146. })
  147. }
  148. });
  149. }, 500)
  150. }).catch(data => {
  151. console.log("fgh", data)
  152. })
  153. }
  154. })
  155. }
  156. })
  157. // 用户登录首页
  158. wx.aldPushSubscribeMessage({
  159. eventId: '5ea25b117739104342928e97'
  160. });
  161. }
  162. setTimeout(function () {
  163. self.setData({
  164. disabled: false
  165. })
  166. }, 1000)
  167. },
  168. privacyCancel(){
  169. wx.switchTab({
  170. url: '/pages/index/index',
  171. })
  172. }
  173. })