feat: 登录的逻辑调整
This commit is contained in:
@@ -4,7 +4,7 @@ import { getEvnUrl } from "@/request/api/config";
|
|||||||
import { refreshToken } from "@/hooks/useGoLogin";
|
import { refreshToken } from "@/hooks/useGoLogin";
|
||||||
|
|
||||||
onLaunch(() => {
|
onLaunch(() => {
|
||||||
getEvnUrl({ versionValue: "1.0.1" });
|
getEvnUrl({ versionValue: "1.0.2" });
|
||||||
refreshToken();
|
refreshToken();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -62,30 +62,29 @@ export const checkToken = () => {
|
|||||||
|
|
||||||
// 刷新token
|
// 刷新token
|
||||||
export const refreshToken = () => {
|
export const refreshToken = () => {
|
||||||
const token = getStorageSyncToken();
|
return new Promise((resolve) => {
|
||||||
|
uni.login({
|
||||||
|
provider: "weixin", //使用微信登录
|
||||||
|
success: async ({ code }) => {
|
||||||
|
console.log("refreshToken", code);
|
||||||
|
const params = {
|
||||||
|
openIdCode: [code],
|
||||||
|
grant_type: "wechat",
|
||||||
|
scope: "server",
|
||||||
|
clientId: clientId,
|
||||||
|
};
|
||||||
|
console.log("获取到的微信授权params:", JSON.stringify(params));
|
||||||
|
const response = await wxLogin(params);
|
||||||
|
|
||||||
if (!token) {
|
if (response.access_token) {
|
||||||
return;
|
setStorageSyncToken(response.access_token);
|
||||||
}
|
// 登录成功后,触发登录成功事件
|
||||||
|
uni.$emit(NOTICE_EVENT_LOGIN_SUCCESS);
|
||||||
uni.login({
|
resolve(false)
|
||||||
provider: "weixin", //使用微信登录
|
} else {
|
||||||
success: async ({ code }) => {
|
resolve(true)
|
||||||
console.log("refreshToken", code);
|
}
|
||||||
const params = {
|
},
|
||||||
openIdCode: [code],
|
});
|
||||||
grant_type: "wechat",
|
|
||||||
scope: "server",
|
|
||||||
clientId: clientId,
|
|
||||||
};
|
|
||||||
console.log("获取到的微信授权params:", JSON.stringify(params));
|
|
||||||
const response = await wxLogin(params);
|
|
||||||
|
|
||||||
if (response.access_token) {
|
|
||||||
setStorageSyncToken(response.access_token);
|
|
||||||
// 登录成功后,触发登录成功事件
|
|
||||||
uni.$emit(NOTICE_EVENT_LOGIN_SUCCESS);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -38,20 +38,11 @@
|
|||||||
<!-- 同意隐私协议并获取手机号按钮 -->
|
<!-- 同意隐私协议并获取手机号按钮 -->
|
||||||
|
|
||||||
<button
|
<button
|
||||||
v-if="!isAgree"
|
|
||||||
class="login-btn"
|
class="login-btn"
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="handleAgreeAndGetPhone"
|
:open-type="needWxLogin ? 'getPhoneNumber' : ''"
|
||||||
>
|
|
||||||
手机号快捷登录
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<button
|
|
||||||
v-if="isAgree && !appStore.tokenExpired"
|
|
||||||
class="login-btn"
|
|
||||||
type="primary"
|
|
||||||
open-type="getPhoneNumber"
|
|
||||||
@getphonenumber="getPhoneNumber"
|
@getphonenumber="getPhoneNumber"
|
||||||
|
@click="handleAgreeAndGetPhone"
|
||||||
>
|
>
|
||||||
手机号快捷登录
|
手机号快捷登录
|
||||||
</button>
|
</button>
|
||||||
@@ -67,19 +58,19 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import { onShow } from "@dcloudio/uni-app";
|
||||||
import { ref, computed } from "vue";
|
import { ref, computed } from "vue";
|
||||||
import {
|
import {
|
||||||
getServiceAgreement,
|
getServiceAgreement,
|
||||||
getPrivacyAgreement,
|
getPrivacyAgreement,
|
||||||
} from "@/request/api/LoginApi";
|
} from "@/request/api/LoginApi";
|
||||||
import { onLogin, goBack } from "@/hooks/useGoLogin";
|
import { onLogin, goBack, loginAuth, refreshToken } from "@/hooks/useGoLogin";
|
||||||
import CheckBox from "@/components/CheckBox/index.vue";
|
import CheckBox from "@/components/CheckBox/index.vue";
|
||||||
import AgreePopup from "./components/AgreePopup/index.vue";
|
import AgreePopup from "./components/AgreePopup/index.vue";
|
||||||
import { zniconsMap } from "@/static/fonts/znicons.js";
|
import { zniconsMap } from "@/static/fonts/znicons.js";
|
||||||
import { getCurrentConfig } from "@/constant/base";
|
import { getCurrentConfig } from "@/constant/base";
|
||||||
import { useAppStore } from "@/store";
|
|
||||||
const appStore = useAppStore();
|
|
||||||
|
|
||||||
|
const needWxLogin = ref(false);
|
||||||
const isAgree = ref(false);
|
const isAgree = ref(false);
|
||||||
const visible = ref(false);
|
const visible = ref(false);
|
||||||
const serviceAgreement = ref("");
|
const serviceAgreement = ref("");
|
||||||
@@ -90,6 +81,11 @@ const logo = computed(() => getCurrentConfig().logo);
|
|||||||
|
|
||||||
// 同意隐私协议并获取手机号
|
// 同意隐私协议并获取手机号
|
||||||
const handleAgreeAndGetPhone = () => {
|
const handleAgreeAndGetPhone = () => {
|
||||||
|
// 如果需要微信登录,直接返回
|
||||||
|
if (needWxLogin.value) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if (!isAgree.value) {
|
if (!isAgree.value) {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: "请先同意服务协议和隐私协议",
|
title: "请先同意服务协议和隐私协议",
|
||||||
@@ -97,6 +93,8 @@ const handleAgreeAndGetPhone = () => {
|
|||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
refreshToken().then(() => goBack());
|
||||||
};
|
};
|
||||||
|
|
||||||
const getPhoneNumber = (e) => {
|
const getPhoneNumber = (e) => {
|
||||||
@@ -141,6 +139,13 @@ const getPrivacyAgreementData = async () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
getPrivacyAgreementData();
|
getPrivacyAgreementData();
|
||||||
|
|
||||||
|
// 页面显示时刷新token
|
||||||
|
onShow(async () => {
|
||||||
|
const res = await refreshToken();
|
||||||
|
|
||||||
|
needWxLogin.value = res;
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|||||||
@@ -60,9 +60,9 @@ function request(url, args = {}, method = "POST", customConfig = {}) {
|
|||||||
resolve(res.data);
|
resolve(res.data);
|
||||||
if (res.statusCode && res.statusCode === 424) {
|
if (res.statusCode && res.statusCode === 424) {
|
||||||
console.log("424错误,重新登录");
|
console.log("424错误,重新登录");
|
||||||
removeStorageSyncToken();
|
// removeStorageSyncToken();
|
||||||
uni.$emit(NOTICE_EVENT_LOGOUT);
|
uni.$emit(NOTICE_EVENT_LOGOUT);
|
||||||
goLogin();
|
// goLogin();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
fail: (err) => {
|
fail: (err) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user