Ver código fonte

登录接口开发,个人中心回调处理接口逻辑

ZhangWenQiang 6 anos atrás
pai
commit
11c341d477
4 arquivos alterados com 134 adições e 87 exclusões
  1. 4 4
      api/api.js
  2. 95 41
      pages/login/login.js
  3. 28 39
      pages/mine/index.js
  4. 7 3
      utils/http.js

+ 4 - 4
api/api.js

@@ -2,10 +2,10 @@ const url = {
   /** +++++++++++++++++++++++++++  微信小程序接口 ++++++++++++++++++++++++++++++++++++++ */
   /**新版接口 */
   /** +++++++++++++++++++++++++++  frontIndex  ++++++++++++++++++++++++++++++++++++++ */
-  userLogin: '/f/api/wxAppletsLogin/decodeUserInfo', // post ,根据微信CODE获取微信用户信息
-  saveUserInfo: "/f/api/wxAppletsLogin/saveUserInfo", // post, 用户微信信息存入
-  saveMinaPhone: "/f/api/wxAppletsLogin/saveMinaPhone", //post,微信手机号获取解密后绑定
-  imgUp: "/f/api/wxAppletsLogin/imgUp", //post 上传图片.
+  userLogin: '/f/api/wxAppletsLogin/decodeUserInfo_new', // post ,根据微信CODE获取微信用户信息
+  saveUserInfo: "/f/api/wxAppletsLogin/saveUserInfo_new", // post, 用户微信信息存入
+  saveMinaPhone: "/f/api/wxAppletsLogin/saveMinaPhone_new", //post,微信手机号获取解密后绑定
+  imgUp: "/f/api/wxAppletsLogin/imgUp_new", //post 上传图片.
   banner: "/f/api/slide/banner_new", // get 首页轮播图列表获取
   checkPhone: "/f/api/wxAppletsLogin/checkPhone", //get,检查用户手机号
   hotPosition: "/f/api/hpposition/hotPosition", //get,热门岗位列表

+ 95 - 41
pages/login/login.js

@@ -13,6 +13,9 @@ import {
   wxLogin,
   saveLogin
 } from '../../services/wx.js'
+import {
+  showToast
+} from '../../utils/tips.js'
 var app = getApp()
 Page({
   data: {
@@ -29,53 +32,104 @@ Page({
     wx.checkSession({
       success() {
         //session_key 未过期,并且在本生命周期一直有效
+        getWxCode().then(code => {
+            return wxLogin({
+              code: code
+            })
+          })
+          .then(res => {
+            console.log("dd", res)
+            app.globalData.openId = res.data.openId ? res.data.openId : '';
+            app.globalData.sessionKey = res.data.sessionKey ? res.data.sessionKey : '';
+          })
+          .then(data => {
+            if (e.detail.userInfo) {
+              return getUserInfo()
+            } else {
+
+            }
+          })
+          .then(res => {
+            console.log("ddf", res)
+            if (res) {
+              saveLogin({
+                encryptedData: encodeURIComponent(res.encryptedData),
+                iv: encodeURIComponent(res.iv),
+                openid: app.globalData.openId,
+                session_key: app.globalData.sessionKey
+              }).then(data => {
+                console.log("save", data)
+                wx.setStorageSync("userInfo", res.userInfo);
+                wx.setStorageSync("hpuser", data.data.hpUser);
+                wx.setStorageSync("hpMember", data.data.hpMember);
+                wx.setStorageSync("user_id", data.data.hpUser.id);
+                wx.setStorageSync("member_id", data.data.hpMember.id);
+                wx.setStorageSync("user_token", data.data.hpUser.userToken);
+                // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
+                // 所以此处加入 callback 以防止这种情况
+                if (app.userInfoReadyCallback) {
+                  app.userInfoReadyCallback(res)
+                }
+                showToast("登录成功");
+                setTimeout(function() {
+                  wx.navigateBack();
+                }, 500)
+              }).catch(data => {
+                console.log("fgh", data)
+              })
+            }
+          })
       },
       fail() {
         // session_key 已经失效,需要重新执行登录流程
+        getWxCode().then(code => {
+            return wxLogin({
+              code: code
+            })
+          })
+          .then(res => {
+            console.log("dd", res)
+            app.globalData.openId = res.data.openId ? res.data.openId : '';
+            app.globalData.sessionKey = res.data.sessionKey ? res.data.sessionKey : '';
+          })
+          .then(data => {
+            if (e.detail.userInfo) {
+              return getUserInfo()
+            } else {
 
+            }
+          })
+          .then(res => {
+            if (res) {
+              saveLogin({
+                encryptedData: encodeURIComponent(res.encryptedData),
+                iv: encodeURIComponent(res.iv),
+                openid: app.globalData.openId,
+                session_key: app.globalData.sessionKey
+              }).then(data => {
+                console.log("save", data)
+                wx.setStorageSync("userInfo", res.userInfo);
+                wx.setStorageSync("hpuser", data.data.hpUser);
+                wx.setStorageSync("hpMember", data.data.hpMember);
+                wx.setStorageSync("user_id", data.data.hpUser.id);
+                wx.setStorageSync("member_id", data.data.hpMember.id);
+                wx.setStorageSync("user_token", data.data.hpUser.userToken);
+                // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
+                // 所以此处加入 callback 以防止这种情况
+                if (app.userInfoReadyCallback) {
+                  app.userInfoReadyCallback(res)
+                }
+                showToast("登录成功");
+                setTimeout(function() {
+                  wx.navigateBack();
+                }, 500)
+              }).catch(data => {
+                console.log("fgh", data)
+              })
+            }
+          })
       }
     })
-    if (e.detail.userInfo) {
-      //用户按了允许授权按钮
-      getUserInfo().then(res => {
-        saveLogin({
-          encryptedData: encodeURIComponent(res.encryptedData),
-          iv: encodeURIComponent(res.iv),
-          openid: app.globalData.openId,
-          session_key: app.globalData.sessionKey
-        }).then(data => {
-          console.log(data)
-          app.globalData.userId = data.data.hpUser.id ? data.data.hpUser.id : '';
-          app.globalData.userToken = data.data.hpUser.userToken ? data.data.hpUser.userToken : '';
-          app.globalData.userInfo = res.userInfo;
-          updataStorageData('shareToken', data.data.hpUser.userToken || '') //用户识别码
-          wx.setStorageSync("hpuser", data.data.hpUser);
-          // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
-          // 所以此处加入 callback 以防止这种情况
-          if (app.userInfoReadyCallback) {
-            app.userInfoReadyCallback(res)
-          }
-        }).catch(data => {
-          console.log(data)
-        })
-        wx.navigateBack()
-      }).catch(data => {
-        console.log(data)
-      })
-    } else {
-      //用户按了拒绝按钮
-      wx.showModal({
-        title: '提示',
-        content: '您点击了拒绝授权,将无法正常使用该小程序,请授权之后再使用。',
-        showCancel: false,
-        confirmText: '返回授权',
-        success: function(res) {
-          if (res.confirm) {
-            console.log('用户点击了“返回授权”')
-          }
-        }
-      })
-    }
   }
 
 })

+ 28 - 39
pages/mine/index.js

@@ -25,12 +25,14 @@ Page({
     percent: 0,
     userId: '',
     memberId: '',
+    userToken: '',
     isLogin: false, //默认:未登录
     approveStatus: 0,
   },
   onLoad: function(options) {
     //获取用户user_id和member_id,判断是否处于登录态
     var userId = wx.getStorageSync("user_id");
+    var userToken = wx.getStorageSync("user_token");
     var memberId = wx.getStorageSync("member_id");
     var isLogin = false;
     if (userId && memberId) {
@@ -42,59 +44,45 @@ Page({
     }
     this.setData({
       phone: updataStorageData("phone"),
-      isLogin: isLogin
+      isLogin: isLogin,
+      userId: userId,
+      memberId: memberId,
+      userToken: userToken
     })
   },
   onShow: function() {
-    if (app.globalData.userInfo) {
-      console.log('有info===', app.globalData)
+    var userId = wx.getStorageSync("user_id");
+    var userToken = wx.getStorageSync("user_token");
+    var memberId = wx.getStorageSync("member_id");
+    var userInfo = wx.getStorageSync("userInfo");
+    var isLogin = false;
+    if (userId && memberId) {
+      isLogin = true;
       this.setData({
-        userInfo: app.globalData.userInfo
+        isLogin: isLogin,
+        userId: userId,
+        memberId: memberId,
+        userToken: userToken
       })
-      this.start();
-    } else if (this.data.canIUse) {
-      // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
-      // 所以此处加入 callback 以防止这种情况
-      app.userInfoReadyCallback = res => {
-        console.log('userInfoReadyCallback===', app.globalData)
+      if (userInfo) {
+        console.log('有info===', userInfo)
         this.setData({
-          userInfo: app.globalData.userInfo
+          userInfo: userInfo
         })
         this.start();
       }
-    } else {
-      // 在没有 open-type=getUserInfo 版本的兼容处理
-      wx.getUserInfo({
-        success: res => {
-          app.globalData.userInfo = res.userInfo
-          console.log('兼容处理===', app.globalData)
-          this.setData({
-            userInfo: useapp.globalData.userInforInfo
-          })
-          this.start();
-        }
-      })
     }
-
   },
   start() {
-    var userId = wx.getStorageSync("user_id");
-    var memberId = wx.getStorageSync("member_id");
-    var isLogin = false;
-    if (userId && memberId) {
-      isLogin = true;
-      this.fetchData();
-      this.getUserResume();
-    }
-    this.setData({
-      isLogin: isLogin
-    })
+    this.fetchData();
+    this.getUserResume();
   },
   //获取用户简历详情
   getUserResume() {
     let paramsObj = {
-      user_id: app.globalData.userId,
-      user_token: app.globalData.userToken
+      user_id: this.data.userId,
+      user_token: this.data.userToken,
+      member_id: this.data.memberId
     }
     Object.assign(paramsObj);
     getResume(paramsObj).then(data => {
@@ -120,8 +108,9 @@ Page({
   //获取用户认证状态
   fetchData() {
     let paramsObj = {
-      user_id: app.globalData.userId,
-      user_token: app.globalData.userToken
+      user_id: this.data.userId,
+      user_token: this.data.userToken,
+      member_id: this.data.memberId
     }
     Object.assign(paramsObj);
     getCenterInfo(paramsObj).then(data => {

+ 7 - 3
utils/http.js

@@ -38,6 +38,11 @@ const http = (params) => {
             wx.navigateTo({
               url: '/pages/auth/auth',
             })
+          } else if (errorCode == 1014) {
+            //前往绑定手机号
+            wx.navigateTo({
+              url: '/pages/bind-phone/index',
+            })
           } else if (errorCode == 1005) {
             //未获取到微信登录信息
             wx.navigateTo({
@@ -63,9 +68,8 @@ const http = (params) => {
           } else if (errorCode == 2006) {
             //后台接口异常
           }
-          showToast(res.data.errmsg)
-          reject(res.data)
-
+          showToast(res.data.errmsg);
+          reject(res.data);
         } else {
           //2. 操作不成功返回数据,以toast方式弹出响应信息,如后端未格式化非操作成功异常信息,则可以统一定义异常提示
           wx.showToast({