1
0
mirror of https://github.com/ialley-workshop-open/uni-halo.git synced 2026-06-12 13:19:31 +08:00

feat(auth): 限制阅读支持评论后访问

- 引入 getOpenid 和 getNologinEmail 方法统一管理认证信息
- 替换原有直接读取 storage 方式为封装方法调用
- 优化文章详情页按钮文案展示逻辑
- 新增评论后自动刷新限制阅读内容功能
- 调整评论权限提示逻辑,跳转至评论弹窗而非 toast 提示
This commit is contained in:
liuyiwuqing
2025-11-25 21:32:07 +08:00
parent 90f6516f45
commit 21fee2dc9a
3 changed files with 32 additions and 12 deletions
+7 -4
View File
@@ -10,6 +10,7 @@ import qs from 'qs'
import { import {
getAppConfigs getAppConfigs
} from '@/config/index.js' } from '@/config/index.js'
import {getNologinEmail, getOpenid} from "@/utils/auth";
export default { export default {
/** /**
@@ -27,7 +28,8 @@ export default {
getPostByName: (name) => { getPostByName: (name) => {
return HttpHandler.Get(`/apis/api.content.halo.run/v1alpha1/posts/${name}`, {}, { return HttpHandler.Get(`/apis/api.content.halo.run/v1alpha1/posts/${name}`, {}, {
header: { header: {
'Wechat-Session-Id': uni.getStorageSync('openid'), 'Wechat-Session-Id': getOpenid(),
'nologin-email': getNologinEmail()
} }
}) })
}, },
@@ -197,7 +199,8 @@ export default {
return HttpHandler.Post(`/apis/tools.muyin.site/v1alpha1/restrict-read/check`, params, { return HttpHandler.Post(`/apis/tools.muyin.site/v1alpha1/restrict-read/check`, params, {
header: { header: {
'Authorization': getAppConfigs().pluginConfig.toolsPlugin?.Authorization, 'Authorization': getAppConfigs().pluginConfig.toolsPlugin?.Authorization,
'Wechat-Session-Id': uni.getStorageSync('openid'), 'Wechat-Session-Id': getOpenid(),
'nologin-email': getNologinEmail()
} }
}) })
}, },
@@ -209,7 +212,7 @@ export default {
return HttpHandler.Get(`/apis/tools.muyin.site/v1alpha1/restrict-read/create`, null, { return HttpHandler.Get(`/apis/tools.muyin.site/v1alpha1/restrict-read/create`, null, {
header: { header: {
'Authorization': getAppConfigs().pluginConfig.toolsPlugin?.Authorization, 'Authorization': getAppConfigs().pluginConfig.toolsPlugin?.Authorization,
'Wechat-Session-Id': uni.getStorageSync('openid'), 'Wechat-Session-Id': getOpenid(),
} }
}) })
}, },
@@ -221,7 +224,7 @@ export default {
return HttpHandler.Post(`/apis/linkssubmit.muyin.site/v1alpha1/submit`, form, { return HttpHandler.Post(`/apis/linkssubmit.muyin.site/v1alpha1/submit`, form, {
header: { header: {
'Authorization': getAppConfigs().pluginConfig.linksSubmitPlugin?.Authorization, 'Authorization': getAppConfigs().pluginConfig.linksSubmitPlugin?.Authorization,
'Wechat-Session-Id': uni.getStorageSync('openid'), 'Wechat-Session-Id': getOpenid(),
} }
}) })
}, },
+8 -8
View File
@@ -101,7 +101,7 @@
:loading="true" :loading="true"
:lines="3" :lines="3"
:tip-text="`此处内容已隐藏,「${getRestrictReadTypeName(result)}可见」`" :tip-text="`此处内容已隐藏,「${getRestrictReadTypeName(result)}可见」`"
button-text="查看更多" :button-text="`${getRestrictReadTypeName(result)}`"
button-color="#1890ff" button-color="#1890ff"
skeleton-color="#f0f0f0" skeleton-color="#f0f0f0"
skeleton-highlight="#e0e0e0" skeleton-highlight="#e0e0e0"
@@ -129,7 +129,7 @@
:loading="true" :loading="true"
:lines="3" :lines="3"
:tip-text="`此处内容已隐藏,「${getRestrictReadTypeName(result)}可见」`" :tip-text="`此处内容已隐藏,「${getRestrictReadTypeName(result)}可见」`"
button-text="查看更多" :button-text="`${getRestrictReadTypeName(result)}`"
button-color="#1890ff" button-color="#1890ff"
skeleton-color="#f0f0f0" skeleton-color="#f0f0f0"
skeleton-highlight="#e0e0e0" skeleton-highlight="#e0e0e0"
@@ -726,8 +726,10 @@ export default {
this.commentModal.show = true; this.commentModal.show = true;
}, },
fnOnCommentModalClose({ refresh, isSubmit }) { fnOnCommentModalClose({ refresh, isSubmit }) {
console.log('refresh', refresh); // 评论后自动刷新
console.log('isSubmit', isSubmit); if (this.result?.metadata?.annotations?.restrictReadEnable === 'comment') {
this.fnGetData();
}
if (refresh && isSubmit && this.$refs.commentListRef) { if (refresh && isSubmit && this.$refs.commentListRef) {
this.$refs.commentListRef.fnGetData(); this.$refs.commentListRef.fnGetData();
} }
@@ -1236,10 +1238,8 @@ export default {
this.verificationCodeModal.show = true; this.verificationCodeModal.show = true;
return; return;
} else if (restrictReadEnable === 'comment') { } else if (restrictReadEnable === 'comment') {
uni.showToast({ this.fnToComment();
title: '前往web端评论后访问', return;
icon: 'none'
});
} else if (restrictReadEnable === 'login') { } else if (restrictReadEnable === 'login') {
uni.showToast({ uni.showToast({
title: '前往web端登录后访问', title: '前往web端登录后访问',
+17
View File
@@ -76,3 +76,20 @@ export function checkHasWxLogin() {
export function checkHasAdminLogin() { export function checkHasAdminLogin() {
return !!getCache('APP_ADMIN_LOGIN_TOKEN') return !!getCache('APP_ADMIN_LOGIN_TOKEN')
} }
/**
* 获取openid
*/
export function getOpenid() {
return uni.getStorageSync('openid');
}
/**
* 获取nologin-email
*/
export function getNologinEmail() {
let Visitor = uni.getStorageSync('Visitor');
if (!Visitor) return '';
Visitor = JSON.parse(Visitor)
return Visitor.email || Visitor.author || '';
}