login.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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. var app = getApp()
  17. Page({
  18. data: {
  19. canIUse: wx.canIUse('button.open-type.getUserInfo'),
  20. imgServerUrl: imgServerUrl
  21. },
  22. onLoad: function() {
  23. },
  24. //用户授权
  25. bindGetUserInfo: function(e) {
  26. //检查登录态
  27. wx.checkSession({
  28. success() {
  29. //session_key 未过期,并且在本生命周期一直有效
  30. },
  31. fail() {
  32. // session_key 已经失效,需要重新执行登录流程
  33. }
  34. })
  35. if (e.detail.userInfo) {
  36. //用户按了允许授权按钮
  37. getUserInfo().then(res => {
  38. saveLogin({
  39. encryptedData: encodeURIComponent(res.encryptedData),
  40. iv: encodeURIComponent(res.iv),
  41. openid: app.globalData.openId,
  42. session_key: app.globalData.sessionKey
  43. }).then(data => {
  44. console.log(data)
  45. app.globalData.userId = data.data.hpUser.id ? data.data.hpUser.id : '';
  46. app.globalData.userToken = data.data.hpUser.userToken ? data.data.hpUser.userToken : '';
  47. app.globalData.userInfo = res.userInfo;
  48. updataStorageData('shareToken', data.data.hpUser.userToken || '') //用户识别码
  49. wx.setStorageSync("hpuser", data.data.hpUser);
  50. // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
  51. // 所以此处加入 callback 以防止这种情况
  52. if (app.userInfoReadyCallback) {
  53. app.userInfoReadyCallback(res)
  54. }
  55. }).catch(data => {
  56. console.log(data)
  57. })
  58. wx.navigateBack()
  59. }).catch(data => {
  60. console.log(data)
  61. })
  62. } else {
  63. //用户按了拒绝按钮
  64. wx.showModal({
  65. title: '提示',
  66. content: '您点击了拒绝授权,将无法正常使用该小程序,请授权之后再使用。',
  67. showCancel: false,
  68. confirmText: '返回授权',
  69. success: function(res) {
  70. if (res.confirm) {
  71. console.log('用户点击了“返回授权”')
  72. }
  73. }
  74. })
  75. }
  76. }
  77. })