feat(auth): 实现第三方登录集成
- 在 careerfair.vue 中新增 thirdLogin 方法处理单点登录逻辑 - 修改 goDetail 方法,在跳转前执行第三方登录验证 - 在 packageB/train/index.vue 中增加 onLoad 钩子调用 thirdLogin - 修改 jumps 方法,确保页面跳转前完成登录验证 - 在 request.js 中注释掉全局错误提示,避免重复提示 - 优化 videoDetail.vue 中的 getHeart 方法,移除冗余跳转逻辑 - 在 videoList.vue 中新增 playVideo 前的登录校验 - 统一多个页面中的 thirdLogin 实现,确保登录态一致性
This commit is contained in:
@@ -202,12 +202,10 @@ function getData() {
|
||||
function getHeart() {
|
||||
const raw = uni.getStorageSync("Padmin-Token");
|
||||
const token = typeof raw === "string" ? raw.trim() : "";
|
||||
const headers = token ? { Authorization: raw.startsWith("Bearer ") ? raw : `Bearer ${token}` }: {}
|
||||
const headers = token ? { Authorization: raw.startsWith("Bearer ") ? raw : `Bearer ${token}` }: {};
|
||||
$api.myRequest("/dashboard/auth/heart", {}, "POST", 10100, headers).then((resData) => {
|
||||
if (resData.code == 200) {
|
||||
getUserInfo();
|
||||
} else {
|
||||
navTo('/packageB/login')
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -218,6 +216,7 @@ function getUserInfo(){
|
||||
$api.myRequest('/system/user/login/user/info', {},'get',10100,header).then((resData) => {
|
||||
userId.value=resData.info.userId
|
||||
getData()
|
||||
updateVideoInfo()
|
||||
});
|
||||
}
|
||||
function getDictionary(){
|
||||
@@ -277,15 +276,20 @@ function updateVideoInfo(){
|
||||
'Authorization':uni.getStorageSync('Padmin-Token'),
|
||||
'Content-Type': "application/x-www-form-urlencoded"
|
||||
}
|
||||
if(videoInfo.value.isCollect===null && videoInfo.value.process ===null){
|
||||
$api.myRequest('/train/public/videoUser/add', paramsData,'post',9100,header).then((resData) => {
|
||||
console.log("视频播放时长更新成功")
|
||||
});
|
||||
}else{
|
||||
$api.myRequest('/train/public/videoUser/update', paramsData,'post',9100,header).then((resData) => {
|
||||
console.log("视频播放时长更新成功")
|
||||
});
|
||||
}
|
||||
|
||||
$api.myRequest("/dashboard/auth/heart", {}, "POST", 10100, header).then((resData) => {
|
||||
if (resData.code == 200) {
|
||||
if(videoInfo.value.isCollect===null && videoInfo.value.process ===null){
|
||||
$api.myRequest('/train/public/videoUser/add', paramsData,'post',9100,header).then((resData) => {
|
||||
console.log("视频播放时长更新成功")
|
||||
});
|
||||
}else{
|
||||
$api.myRequest('/train/public/videoUser/update', paramsData,'post',9100,header).then((resData) => {
|
||||
console.log("视频播放时长更新成功")
|
||||
});
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
// 计算并上报停留时长
|
||||
function reportPageDuration() {
|
||||
|
||||
@@ -80,7 +80,8 @@ const getItemBackgroundStyle = (imageName) => ({
|
||||
});
|
||||
const trainVideoImgUrl=config.trainVideoImgUrl
|
||||
|
||||
onLoad(() => {
|
||||
onLoad(async () => {
|
||||
await thirdLogin()
|
||||
getDataList('refresh');
|
||||
});
|
||||
|
||||
@@ -135,8 +136,53 @@ function getDataList(type = 'add') {
|
||||
|
||||
|
||||
// 播放视频
|
||||
function playVideo(video) {
|
||||
navTo(`/packageB/train/video/videoDetail?id=${video.videoId}`);
|
||||
async function playVideo(video) {
|
||||
if(await thirdLogin()){
|
||||
navTo(`/packageB/train/video/videoDetail?id=${video.videoId}`);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
async function thirdLogin(){
|
||||
let form={}
|
||||
if (uni.getStorageSync('userInfo').isCompanyUser=='1') {
|
||||
form={
|
||||
usertype: '1',
|
||||
idno: uni.getStorageSync('userInfo').idCard,
|
||||
name: uni.getStorageSync('userInfo').name,
|
||||
enterprisecode:"",
|
||||
enterprisename: "",
|
||||
contactperson: "",
|
||||
contactphone: "",
|
||||
}
|
||||
}else if (uni.getStorageSync('userInfo').isCompanyUser=='0') {
|
||||
form={
|
||||
usertype: "2",
|
||||
enterprisecode: uni.getStorageSync('userInfo').idCard,
|
||||
enterprisename: uni.getStorageSync('userInfo').name,
|
||||
contactperson: "",
|
||||
contactphone: "",
|
||||
idno: "",
|
||||
name: ""
|
||||
}
|
||||
}else{
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
title: '请先登录'
|
||||
})
|
||||
return false;
|
||||
}
|
||||
var resLogin = await $api.myRequest('/auth/login2/ks',form,'post',10100);
|
||||
if (resLogin.code=='200') {
|
||||
uni.setStorageSync('Padmin-Token', resLogin.data.access_token)
|
||||
return true;
|
||||
}else{
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
title: '单点异常'
|
||||
})
|
||||
return false;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user