|
@@ -3,72 +3,86 @@ var Parse = getApp().Parse;
|
|
|
function loginNow(authPage = 'plugin://fm-plugin/fm-auth') {
|
|
function loginNow(authPage = 'plugin://fm-plugin/fm-auth') {
|
|
|
console.log('===========================================');
|
|
console.log('===========================================');
|
|
|
console.log('======= 开始登录流程 =======');
|
|
console.log('======= 开始登录流程 =======');
|
|
|
- console.log('当前用户:', Parse.User.current()?.get('mobile'));
|
|
|
|
|
|
|
+
|
|
|
|
|
+ const currentUser = Parse.User.current();
|
|
|
|
|
+ const hasMobile = currentUser?.get('mobile');
|
|
|
|
|
+ const userLogin = wx.getStorageSync('userLogin');
|
|
|
|
|
+
|
|
|
|
|
+ console.log('当前用户:', currentUser ? currentUser.id : '无');
|
|
|
|
|
+ console.log('手机号:', hasMobile || '无');
|
|
|
|
|
+ console.log('userLogin 存储:', userLogin || '无');
|
|
|
console.log('===========================================');
|
|
console.log('===========================================');
|
|
|
|
|
|
|
|
- // 检查是否已登录
|
|
|
|
|
- if (Parse.User.current()?.get('mobile')) {
|
|
|
|
|
- wx.setStorageSync("userLogin", Parse.User.current().id);
|
|
|
|
|
|
|
+ // 只有同时满足以下条件才认为已登录:
|
|
|
|
|
+ // 1. Parse.User.current() 存在
|
|
|
|
|
+ // 2. 用户有手机号
|
|
|
|
|
+ // 3. userLogin 存储存在
|
|
|
|
|
+ if (currentUser && hasMobile && userLogin) {
|
|
|
|
|
+ console.log('✅ 用户已完整登录');
|
|
|
|
|
+ return true;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- let userInfo = wx.getStorageSync('userLogin');
|
|
|
|
|
|
|
+ // 如果有 Parse 用户但没有手机号或 userLogin,清除状态重新登录
|
|
|
|
|
+ if (currentUser && (!hasMobile || !userLogin)) {
|
|
|
|
|
+ console.log('⚠️ 用户状态不完整,清除并重新登录');
|
|
|
|
|
+ wx.removeStorageSync('userLogin');
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- if (userInfo == '') {
|
|
|
|
|
- console.log('用户未登录,跳转到授权页面');
|
|
|
|
|
-
|
|
|
|
|
- // 检查页面栈
|
|
|
|
|
- const pages = getCurrentPages();
|
|
|
|
|
- console.log('当前页面栈层数:', pages.length);
|
|
|
|
|
-
|
|
|
|
|
- if (pages.length >= 10) {
|
|
|
|
|
- // 页面栈已满,使用 redirectTo
|
|
|
|
|
- console.log('⚠️ 页面栈已满,使用 redirectTo');
|
|
|
|
|
- wx.redirectTo({
|
|
|
|
|
- url: authPage,
|
|
|
|
|
- success: () => {
|
|
|
|
|
- console.log('✅ redirectTo 跳转成功');
|
|
|
|
|
- },
|
|
|
|
|
- fail: (err) => {
|
|
|
|
|
- console.error('❌ redirectTo 失败:', err);
|
|
|
|
|
- wx.showToast({
|
|
|
|
|
- title: '跳转失败,请重试',
|
|
|
|
|
- icon: 'none'
|
|
|
|
|
- });
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
- } else {
|
|
|
|
|
- // 使用 navigateTo
|
|
|
|
|
- wx.navigateTo({
|
|
|
|
|
- url: authPage,
|
|
|
|
|
- success: () => {
|
|
|
|
|
- console.log('✅ navigateTo 跳转成功');
|
|
|
|
|
- },
|
|
|
|
|
- fail: (err) => {
|
|
|
|
|
- console.error('❌ navigateTo 失败:', err);
|
|
|
|
|
- console.log('⚠️ 尝试使用 redirectTo');
|
|
|
|
|
-
|
|
|
|
|
- // 降级使用 redirectTo
|
|
|
|
|
- wx.redirectTo({
|
|
|
|
|
- url: authPage,
|
|
|
|
|
- success: () => {
|
|
|
|
|
- console.log('✅ redirectTo 跳转成功');
|
|
|
|
|
- },
|
|
|
|
|
- fail: (err2) => {
|
|
|
|
|
- console.error('❌ redirectTo 也失败:', err2);
|
|
|
|
|
- wx.showToast({
|
|
|
|
|
- title: '跳转失败,请重试',
|
|
|
|
|
- icon: 'none'
|
|
|
|
|
- });
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
- }
|
|
|
|
|
- return false;
|
|
|
|
|
|
|
+ // 跳转到授权页面
|
|
|
|
|
+ console.log('🔄 跳转到授权页面');
|
|
|
|
|
+
|
|
|
|
|
+ // 检查页面栈
|
|
|
|
|
+ const pages = getCurrentPages();
|
|
|
|
|
+ console.log('当前页面栈层数:', pages.length);
|
|
|
|
|
+
|
|
|
|
|
+ if (pages.length >= 10) {
|
|
|
|
|
+ // 页面栈已满,使用 redirectTo
|
|
|
|
|
+ console.log('⚠️ 页面栈已满,使用 redirectTo');
|
|
|
|
|
+ wx.redirectTo({
|
|
|
|
|
+ url: authPage,
|
|
|
|
|
+ success: () => {
|
|
|
|
|
+ console.log('✅ redirectTo 跳转成功');
|
|
|
|
|
+ },
|
|
|
|
|
+ fail: (err) => {
|
|
|
|
|
+ console.error('❌ redirectTo 失败:', err);
|
|
|
|
|
+ wx.showToast({
|
|
|
|
|
+ title: '跳转失败,请重试',
|
|
|
|
|
+ icon: 'none'
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
} else {
|
|
} else {
|
|
|
- console.log('✅ 用户已登录');
|
|
|
|
|
- return true;
|
|
|
|
|
|
|
+ // 使用 navigateTo
|
|
|
|
|
+ console.log('📱 使用 navigateTo 跳转');
|
|
|
|
|
+ wx.navigateTo({
|
|
|
|
|
+ url: authPage,
|
|
|
|
|
+ success: () => {
|
|
|
|
|
+ console.log('✅ navigateTo 跳转成功');
|
|
|
|
|
+ },
|
|
|
|
|
+ fail: (err) => {
|
|
|
|
|
+ console.error('❌ navigateTo 失败:', err);
|
|
|
|
|
+ console.log('⚠️ 尝试使用 redirectTo');
|
|
|
|
|
+
|
|
|
|
|
+ // 降级使用 redirectTo
|
|
|
|
|
+ wx.redirectTo({
|
|
|
|
|
+ url: authPage,
|
|
|
|
|
+ success: () => {
|
|
|
|
|
+ console.log('✅ redirectTo 跳转成功');
|
|
|
|
|
+ },
|
|
|
|
|
+ fail: (err2) => {
|
|
|
|
|
+ console.error('❌ redirectTo 也失败:', err2);
|
|
|
|
|
+ wx.showToast({
|
|
|
|
|
+ title: '跳转失败,请重试',
|
|
|
|
|
+ icon: 'none'
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ console.log('===========================================');
|
|
|
|
|
+ return false;
|
|
|
}
|
|
}
|
|
|
/* 通过小程序wx.login获取openid和session_key */
|
|
/* 通过小程序wx.login获取openid和session_key */
|
|
|
function wxLogin() {
|
|
function wxLogin() {
|