✨ 登录:清理 auto_login 逻辑,标记 App 等未来在搞
							parent
							
								
									789cbe8461
								
							
						
					
					
						commit
						f968397ad8
					
				| 
						 | 
				
			
			@ -9,27 +9,27 @@
 | 
			
		|||
        @onConfirm="onConfirm"
 | 
			
		||||
      />
 | 
			
		||||
 | 
			
		||||
      <!-- 2.短信登录  smsLogin -->
 | 
			
		||||
      <!-- 2. 短信登录  smsLogin -->
 | 
			
		||||
      <sms-login v-if="authType === 'smsLogin'" :agreeStatus="state.protocol" @onConfirm="onConfirm" />
 | 
			
		||||
 | 
			
		||||
      <!-- 4.忘记密码 resetPassword-->
 | 
			
		||||
      <!-- 3. 忘记密码 resetPassword-->
 | 
			
		||||
      <reset-password v-if="authType === 'resetPassword'" />
 | 
			
		||||
 | 
			
		||||
      <!-- 5.绑定手机号 changeMobile -->
 | 
			
		||||
      <!-- 4. 绑定手机号 changeMobile -->
 | 
			
		||||
      <change-mobile v-if="authType === 'changeMobile'" />
 | 
			
		||||
 | 
			
		||||
      <!-- 6.修改密码 changePassword-->
 | 
			
		||||
      <!-- 5. 修改密码 changePassword-->
 | 
			
		||||
      <changePassword v-if="authType === 'changePassword'" />
 | 
			
		||||
 | 
			
		||||
      <!-- 8.微信小程序授权 changeUsername-->
 | 
			
		||||
      <!-- 6. 微信小程序授权 -->
 | 
			
		||||
      <mp-authorization v-if="authType === 'mpAuthorization'" />
 | 
			
		||||
 | 
			
		||||
      <!-- 第三方登录+注册 -->
 | 
			
		||||
      <!-- 7. 第三方登录 -->
 | 
			
		||||
      <view
 | 
			
		||||
        v-if="['accountLogin', 'smsLogin'].includes(authType)"
 | 
			
		||||
        class="auto-login-box ss-flex ss-flex-col ss-row-center ss-col-center"
 | 
			
		||||
      >
 | 
			
		||||
        <!-- 立即注册&快捷登录 TextButton -->
 | 
			
		||||
        <!-- 7.1 微信小程序的快捷登录 -->
 | 
			
		||||
        <view v-if="sheep.$platform.name === 'WechatMiniProgram'" class="ss-flex register-box">
 | 
			
		||||
          <view class="register-title">还没有账号?</view>
 | 
			
		||||
          <button class="ss-reset-button login-btn" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">
 | 
			
		||||
| 
						 | 
				
			
			@ -38,7 +38,7 @@
 | 
			
		|||
          <view class="circle" />
 | 
			
		||||
        </view>
 | 
			
		||||
 | 
			
		||||
        <!-- 微信的公众号、App、小程序的登录,基于 openid + code -->
 | 
			
		||||
        <!-- 7.2 微信的公众号、App、小程序的登录,基于 openid + code -->
 | 
			
		||||
        <button
 | 
			
		||||
          v-if="
 | 
			
		||||
            ['WechatOfficialAccount', 'WechatMiniProgram', 'App'].includes(sheep.$platform.name) &&
 | 
			
		||||
| 
						 | 
				
			
			@ -53,7 +53,7 @@
 | 
			
		|||
          />
 | 
			
		||||
        </button>
 | 
			
		||||
 | 
			
		||||
        <!-- iOS 登录 -->
 | 
			
		||||
        <!-- 7.3 iOS 登录 TODO 芋艿:等后面搞 App 再弄 -->
 | 
			
		||||
        <button
 | 
			
		||||
          v-if="sheep.$platform.os === 'ios' && sheep.$platform.name === 'App'"
 | 
			
		||||
          @tap="thirdLogin('apple')"
 | 
			
		||||
| 
						 | 
				
			
			@ -66,6 +66,7 @@
 | 
			
		|||
        </button>
 | 
			
		||||
      </view>
 | 
			
		||||
 | 
			
		||||
      <!-- 用户协议的勾选 -->
 | 
			
		||||
      <view
 | 
			
		||||
        v-if="['accountLogin', 'smsLogin'].includes(authType)"
 | 
			
		||||
        class="agreement-box ss-flex ss-row-center"
 | 
			
		||||
| 
						 | 
				
			
			@ -124,7 +125,7 @@
 | 
			
		|||
 | 
			
		||||
  const currentProtocol = ref(false);
 | 
			
		||||
 | 
			
		||||
  // 勾选协议 TODO 芋艿:协议
 | 
			
		||||
  // 勾选协议
 | 
			
		||||
  function onChange() {
 | 
			
		||||
    state.protocol = !state.protocol;
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
import third from '@/sheep/api/third';
 | 
			
		||||
// TODO 芋艿:等后面搞 App 再弄
 | 
			
		||||
 | 
			
		||||
const login = () => {
 | 
			
		||||
  return new Promise(async (resolve, reject) => {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,18 +4,11 @@ import AuthUtil from '@/sheep/api/member/auth';
 | 
			
		|||
 | 
			
		||||
const socialType = 34; // 社交类型 - 微信小程序
 | 
			
		||||
 | 
			
		||||
let sessionId = uni.getStorageSync('sessionId');
 | 
			
		||||
let subscribeEventList = [];
 | 
			
		||||
 | 
			
		||||
// 加载微信小程序
 | 
			
		||||
function load() {
 | 
			
		||||
  checkUpdate();
 | 
			
		||||
  // const sessionStatus = await checkSession();
 | 
			
		||||
  // 小程序的接口改动太频繁了 强制每次进入都重新获取
 | 
			
		||||
  const sessionStatus = false;
 | 
			
		||||
  if (!sessionStatus) {
 | 
			
		||||
    getSessionId();
 | 
			
		||||
  }
 | 
			
		||||
  getSubscribeTemplate();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -97,55 +90,6 @@ const unbind = async () => {
 | 
			
		|||
  return !error;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// 获取最新sessionId
 | 
			
		||||
const getSessionId = async (auto_login = null) => {
 | 
			
		||||
  // 获取code
 | 
			
		||||
  let codeStr = '';
 | 
			
		||||
  const loginResult = await uni.login();
 | 
			
		||||
  if (loginResult.errMsg === 'login:ok') {
 | 
			
		||||
    codeStr = loginResult.code;
 | 
			
		||||
  } else {
 | 
			
		||||
    getSessionId(auto_login);
 | 
			
		||||
    return false;
 | 
			
		||||
  }
 | 
			
		||||
  if(auto_login === null) {
 | 
			
		||||
    auto_login = !!($store('app').platform.auto_login && !$store('user').isLogin);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const { error, data } = await third.wechat.getSessionId({
 | 
			
		||||
    platform: 'miniProgram',
 | 
			
		||||
    payload: encodeURIComponent(
 | 
			
		||||
      JSON.stringify({
 | 
			
		||||
        code: codeStr,
 | 
			
		||||
        auto_login,
 | 
			
		||||
      }),
 | 
			
		||||
    ),
 | 
			
		||||
  });
 | 
			
		||||
  if (error === 0) {
 | 
			
		||||
    uni.setStorageSync('sessionId', data.session_id);
 | 
			
		||||
    return true;
 | 
			
		||||
  }
 | 
			
		||||
  return false;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// 检查sessionId是否可用
 | 
			
		||||
const checkSession = () => {
 | 
			
		||||
  return new Promise((resolve, reject) => {
 | 
			
		||||
    if (!sessionId) {
 | 
			
		||||
      return resolve(false);
 | 
			
		||||
    }
 | 
			
		||||
    uni.checkSession({
 | 
			
		||||
      success() {
 | 
			
		||||
        return resolve(true);
 | 
			
		||||
      },
 | 
			
		||||
      fail() {
 | 
			
		||||
        uni.removeStorageSync('sessionId');
 | 
			
		||||
        return resolve(false);
 | 
			
		||||
      },
 | 
			
		||||
    });
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// 小程序更新
 | 
			
		||||
const checkUpdate = async (silence = true) => {
 | 
			
		||||
  if (uni.canIUse('getUpdateManager')) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,8 @@
 | 
			
		|||
// 登录
 | 
			
		||||
import third from '@/sheep/api/third';
 | 
			
		||||
 | 
			
		||||
// TODO 芋艿:等后面搞 App 再弄
 | 
			
		||||
 | 
			
		||||
const load = async () => {};
 | 
			
		||||
 | 
			
		||||
// 微信开放平台移动应用授权登陆
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue