优化微信扫码登录功能及token获取逻辑
This commit is contained in:
@ -36,26 +36,26 @@ export const createOrder = (params: { spuId: number }) => {
|
|||||||
* 获得钱包充值套餐列表
|
* 获得钱包充值套餐列表
|
||||||
*/
|
*/
|
||||||
export const listWalletRechargePackage = () => {
|
export const listWalletRechargePackage = () => {
|
||||||
return useDollarFetchRequest.get<IResponse<AppPayWalletPackageRespVO[]>>('/prod-api/app-api/pay/wallet-recharge-package/list', {})
|
return useDollarFetchRequest.get<IResponse<AppPayWalletPackageRespVO[]>>('/prod-api/app-api/pay/wallet-recharge-package/list', {})
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取支付状态
|
* 获取支付状态
|
||||||
*/
|
*/
|
||||||
export const getPayStatus = (params: { id: number }) => {
|
export const getPayStatus = (params: { id: number }) => {
|
||||||
return useDollarFetchRequest.get<IResponse<PayOrderRespVO>>('/prod-api/app-api/pay/order/get', {query:params})
|
return useDollarFetchRequest.get<IResponse<PayOrderRespVO>>('/prod-api/app-api/pay/order/get', { query: params })
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过code获取token
|
* 通过code获取token
|
||||||
*/
|
*/
|
||||||
export const getTokenByCode = (params: { type: number; code: string; state: string }) => {
|
export const getTokenByCode = (params: { type: number; code: string; state: string }) => {
|
||||||
return useDollarFetchRequest.post<IResponse<string>>('/prod-api/app-api/member/auth/token-by-code', params)
|
return useDollarFetchRequest.post<IResponse<string>>('/prod-api/app-api/member/auth/token-by-code', params)
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 社交快捷登录,使用 code 授权码
|
* 社交快捷登录,使用 code 授权码
|
||||||
*/
|
*/
|
||||||
export const socialLoginByCode = (params: { type: number; code: string; state: string }) => {
|
export const socialLoginByCode = (params: { type?: number; code?: string; state?: string; openId?: string; sceneStr?: string }) => {
|
||||||
return useDollarFetchRequest.post<
|
return useDollarFetchRequest.post<
|
||||||
IResponse<{
|
IResponse<{
|
||||||
accessToken: string
|
accessToken: string
|
||||||
@ -71,5 +71,5 @@ export const socialLoginByCode = (params: { type: number; code: string; state: s
|
|||||||
* 获得钱包充值记录分页
|
* 获得钱包充值记录分页
|
||||||
*/
|
*/
|
||||||
export const getWalletRechargeRecordPage = (params: { pageNo: number; pageSize: number }) => {
|
export const getWalletRechargeRecordPage = (params: { pageNo: number; pageSize: number }) => {
|
||||||
return useDollarFetchRequest.get<IResponse<PageResultAppPayWalletRechargeRespVO>>('/prod-api/app-api/pay/wallet-transaction/page', {query:params})
|
return useDollarFetchRequest.get<IResponse<PageResultAppPayWalletRechargeRespVO>>('/prod-api/app-api/pay/wallet-transaction/page', { query: params })
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,8 +11,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import useUserStore from '~/stores/user'
|
||||||
import { getLoginQrcode, checkScanStatus } from '~/api/personal-center/index'
|
import { getLoginQrcode, checkScanStatus } from '~/api/personal-center/index'
|
||||||
import QrcodeVue from 'qrcode.vue'
|
import QrcodeVue from 'qrcode.vue'
|
||||||
|
const store = useUserStore()
|
||||||
|
|
||||||
const visible = defineModel('visible', {
|
const visible = defineModel('visible', {
|
||||||
default: false,
|
default: false,
|
||||||
@ -60,8 +62,10 @@
|
|||||||
if (response.code === 0) {
|
if (response.code === 0) {
|
||||||
checkLoginInfo.value = response.data
|
checkLoginInfo.value = response.data
|
||||||
if (checkLoginInfo.value.status === 'SCANNED') {
|
if (checkLoginInfo.value.status === 'SCANNED') {
|
||||||
|
// 登录
|
||||||
|
await store.getTokenV2({ openId: checkLoginInfo.value.openId as string, sceneStr: sceneStr.value })
|
||||||
// 扫码成功
|
// 扫码成功
|
||||||
// visible.value = false
|
visible.value = false
|
||||||
clearInterval(timer.value)
|
clearInterval(timer.value)
|
||||||
} else if (checkLoginInfo.value.status === 'EXPIRED') {
|
} else if (checkLoginInfo.value.status === 'EXPIRED') {
|
||||||
// 二维码过期
|
// 二维码过期
|
||||||
|
|||||||
@ -99,6 +99,38 @@ export default defineStore('useUserStore', {
|
|||||||
console.error('getToken error:', error)
|
console.error('getToken error:', error)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
async getTokenV2(row: any) {
|
||||||
|
const app = useNuxtApp()
|
||||||
|
try {
|
||||||
|
const res = await socialLoginByCode({
|
||||||
|
openId: row.openid,
|
||||||
|
sceneStr: row.sceneStr,
|
||||||
|
})
|
||||||
|
|
||||||
|
const { code, data } = res
|
||||||
|
if (code === 0) {
|
||||||
|
// 打开登录界面
|
||||||
|
if (!data.accessToken) {
|
||||||
|
ElMessage.error('因你未绑定手机号,请先绑定手机号')
|
||||||
|
app.$openLogin('verify', row.code, row.type, row.state)
|
||||||
|
} else {
|
||||||
|
refreshToken.setToken(data.accessToken, data.refreshToken)
|
||||||
|
refreshToken.setUserId(data.userId.toString())
|
||||||
|
// refreshToken.setUserName(loginForm.mobile)
|
||||||
|
this.setToken(data.accessToken)
|
||||||
|
this.setUserId(data.userId.toString())
|
||||||
|
// userStore.setUserName(loginForm.mobile)
|
||||||
|
this.setRefreshToken(data.refreshToken)
|
||||||
|
// 获取信息
|
||||||
|
await this.getUserInfo()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.error('获取token失败:', res.msg)
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('getToken error:', error)
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
persist: import.meta.client && {
|
persist: import.meta.client && {
|
||||||
key: 'tuxixi-store',
|
key: 'tuxixi-store',
|
||||||
|
|||||||
Reference in New Issue
Block a user