login.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. const { miniLogin } = require('../../api/common')
  2. const { login, sessionStorageKey } = require('../../api/request')
  3. const app = getApp()
  4. Page({
  5. /**
  6. * 页面的初始数据
  7. */
  8. data: {
  9. booLock: false
  10. },
  11. wxCode: '',
  12. /**
  13. * 生命周期函数--监听页面加载
  14. */
  15. onLoad(options) {
  16. this.getWxCode()
  17. },
  18. /**
  19. * 生命周期函数--监听页面初次渲染完成
  20. */
  21. onReady() {
  22. },
  23. /**
  24. * 生命周期函数--监听页面显示
  25. */
  26. onShow() {
  27. },
  28. /**
  29. * 生命周期函数--监听页面隐藏
  30. */
  31. onHide() {
  32. },
  33. /**
  34. * 生命周期函数--监听页面卸载
  35. */
  36. onUnload() {
  37. },
  38. async getPhoneNumber(e) {
  39. const { errMsg, encryptedData, iv } = e.detail
  40. if (errMsg === 'getPhoneNumber:ok') {
  41. this.setData({
  42. booLock: true
  43. })
  44. try {
  45. const { status, data } = await miniLogin({
  46. wxCode: this.wxCode,
  47. encryptedData,
  48. iv
  49. })
  50. if (status) {
  51. try {
  52. wx.setStorageSync(sessionStorageKey, data.token)
  53. } catch (err) {}
  54. await app.fetchUserData()
  55. const pages = getCurrentPages()
  56. if (pages.length > 1) {
  57. const route = pages[pages.length - 2]
  58. wx.navigateBack({
  59. delta: 1
  60. })
  61. route.bindCallBack && route.bindCallBack()
  62. }
  63. } else {
  64. wx.showToast({
  65. title: '登录出错了,请重试',
  66. icon: 'none'
  67. })
  68. this.getWxCode()
  69. }
  70. } catch (e) {
  71. this.getWxCode()
  72. }
  73. this.setData({
  74. booLock: false
  75. })
  76. }
  77. },
  78. async getWxCode() {
  79. try {
  80. this.wxCode = await login()
  81. } catch (e) {}
  82. }
  83. })