fix 微信一键登录失效的bug

This commit is contained in:
damonyuan
2026-07-22 10:37:49 +08:00
parent 54fe9fc42e
commit be6c336571
3 changed files with 61 additions and 50 deletions

View File

@@ -41,7 +41,7 @@ class Login extends Validate
protected $rule = [
'account' => 'require',
'password' => 'require|password',
'client' => 'require|in:' . Client_::oa . ',' . Client_::ios . ',' . Client_::android. ',' .Client_::pc. ','. Client_::h5,
'client' => 'require|in:' . Client_::mnp . ',' . Client_::oa . ',' . Client_::ios . ',' . Client_::android. ',' .Client_::pc. ','. Client_::h5,
'captcha_key' => 'require',
'captcha' => 'require|checkCaptcha',
'code'=>'require|checkCode',
@@ -51,7 +51,7 @@ class Login extends Validate
'account.require' => '请输入账号或手机号',
'password.require' => '请输入密码',
'password.password' => '密码错误',
'client.in' => '当前只支持h5和app登录',
'client.in' => '当前客户端不支持登录',
'code.require'=>'请输入验证码',
];

View File

@@ -13,13 +13,16 @@
</u-sticky>
<!-- #endif -->
<!-- #ifdef MP-WEIXIN -->
<view class="mpwx-login">
<image class="logo" :src="appConfig.shop_login_logo" mode="heightFix"></image>
<button size="lg" class="white flex row-center btn" @click="mnpLoginFun">
<text>用户一键登录</text>
</button>
<view class="mt20" style="width: 100%">
<u-checkbox v-model="isAgree" shape="circle">
<view class="mpwx-login" v-if="isPhonelogin == 1">
<image class="logo" :src="appConfig.shop_login_logo" mode="heightFix"></image>
<button size="lg" class="white flex row-center btn" @click="mnpLoginFun">
<text>用户一键登录</text>
</button>
<button size="lg" class="flex row-center phonebtn" @click="isPhonelogin = 0">
<text>账号密码登录</text>
</button>
<view class="mt20" style="width: 100%">
<u-checkbox v-model="isAgree" shape="circle">
<view class="sm row">
已阅读并同意
<navigator
@@ -48,12 +51,11 @@
:title="appConfig.website_name"
@close="closePopup"
@update="handleSubmitInfo"
/>
<!-- #endif -->
<!-- #ifndef MP-WEIXIN -->
<view class="account-login">
<image class="logo" :src="appConfig.shop_login_logo"></image>
<block v-if="isPhonelogin == 1">
/>
<!-- #endif -->
<view class="account-login" v-if="!isMnp || isPhonelogin == 0">
<image class="logo" :src="appConfig.shop_login_logo"></image>
<block v-if="isPhonelogin == 1">
<button
size="lg"
class="white flex row-center btn"
@@ -211,13 +213,16 @@
>
登录
</button>
<view class="row-between" style="width: 680rpx">
<view class="lighter" @click="changeLoginType">{{
loginType == 0 ? '短信验证码登录' : '账号登录'
}}</view>
<navigator class="lighter" url="/pages/register/register" hover-class="none"
>注册账号</navigator
>
<view class="row-between" style="width: 680rpx">
<view class="lighter" @click="changeLoginType">{{
loginType == 0 ? '短信验证码登录' : '账号登录'
}}</view>
<!-- #ifdef MP-WEIXIN -->
<view class="lighter" @click="isPhonelogin = 1">微信一键登录</view>
<!-- #endif -->
<navigator class="lighter" url="/pages/register/register" hover-class="none"
>注册账号</navigator
>
</view>
</view>
</block>
@@ -231,9 +236,8 @@
</view>
</view>
</view> -->
</view>
<!-- #endif -->
<!-- 阅读协议弹框 -->
</view>
<!-- 阅读协议弹框 -->
<u-modal
:value="showModel"
show-cancel-button
@@ -311,15 +315,15 @@ export default {
accountCaptchaCode: '',
accountCaptchaKey: '',
text: '',
showLoginPop: false,
isAgree: false,
showModel: false,
isPhonelogin: 1
}
},
async onLoad(option) {
// #ifdef H5
showLoginPop: false,
isAgree: false,
showModel: false,
isPhonelogin: 1
}
},
async onLoad(option) {
// #ifdef H5
// H5微信登录
this.isWeixin = isWeixinClient()
if (this.isLogin) {
@@ -555,9 +559,15 @@ export default {
this.isAgree = !this.isAgree
}
},
computed: {
...mapGetters(['appConfig']),
inactive() {
computed: {
...mapGetters(['appConfig']),
isMnp() {
// #ifdef MP-WEIXIN
return true
// #endif
return false
},
inactive() {
if (this.loginType == 0) {
return !this.account || !this.password ? true : false
} else {
@@ -585,13 +595,20 @@ page {
margin-bottom: 50rpx;
margin-top: 200rpx;
}
.btn {
background-color: #ff2c3c;
width: 100%;
margin: 80rpx auto 0;
height: 100rpx;
}
}
.btn {
background-color: #ff2c3c;
width: 100%;
margin: 80rpx auto 0;
height: 100rpx;
}
.phonebtn {
border: $ls-solid-border;
margin-top: 50rpx;
width: 100%;
height: 100rpx;
background-color: #fff;
}
}
.account-login {
padding-top: 100rpx;

View File

@@ -1,5 +1,3 @@
import Cache from './cache'
import { TOKEN } from '../config/cachekey'
import { baseURL } from '../config/app'
let cachedToken = ''
@@ -50,10 +48,6 @@ function issue(loginToken) {
reject(new Error(result.msg || '消费票据签发失败'))
return
}
if (Cache.get(TOKEN) !== loginToken) {
resolve('')
return
}
const token = result.data && result.data.token ? result.data.token : ''
const expiresIn = Number(result.data && result.data.expires_in) || 30
cachedLoginToken = loginToken