tkserver 1.7.0 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +32 -2
- package/mongo.js +12 -1
- package/package.json +2 -2
package/index.js
CHANGED
|
@@ -31,6 +31,7 @@ const {
|
|
|
31
31
|
isQQ,
|
|
32
32
|
addQQMailSuffix,
|
|
33
33
|
getQQAvatar,
|
|
34
|
+
getQQNick,
|
|
34
35
|
getPasswordStatus,
|
|
35
36
|
preCheckSpam,
|
|
36
37
|
checkTurnstileCaptcha,
|
|
@@ -143,6 +144,9 @@ module.exports = async (request, response) => {
|
|
|
143
144
|
case 'UPLOAD_IMAGE': // >= 1.5.0
|
|
144
145
|
res = await uploadImage(event, config)
|
|
145
146
|
break
|
|
147
|
+
case 'GET_QQ_NICK': // >= 1.7.0
|
|
148
|
+
res = await qqNickGet(event)
|
|
149
|
+
break
|
|
146
150
|
case 'COMMENT_EXPORT_FOR_ADMIN': // >= 1.6.13
|
|
147
151
|
res = await commentExportForAdmin(event)
|
|
148
152
|
break
|
|
@@ -749,18 +753,20 @@ async function limitFilter (request) {
|
|
|
749
753
|
|
|
750
754
|
async function checkCaptcha (comment, request) {
|
|
751
755
|
logger.log('验证码配置:', {
|
|
756
|
+
CAPTCHA_PROVIDER: config.CAPTCHA_PROVIDER,
|
|
752
757
|
TURNSTILE_SITE_KEY: config.TURNSTILE_SITE_KEY,
|
|
753
758
|
GEETEST_CAPTCHA_ID: config.GEETEST_CAPTCHA_ID,
|
|
754
759
|
GEETEST_CAPTCHA_KEY: config.GEETEST_CAPTCHA_KEY ? '***' : undefined
|
|
755
760
|
})
|
|
756
|
-
|
|
761
|
+
const provider = config.CAPTCHA_PROVIDER
|
|
762
|
+
if ((!provider || provider === 'Turnstile') && config.TURNSTILE_SITE_KEY && config.TURNSTILE_SECRET_KEY) {
|
|
757
763
|
await checkTurnstileCaptcha({
|
|
758
764
|
ip: getIp(request),
|
|
759
765
|
turnstileToken: comment.turnstileToken,
|
|
760
766
|
turnstileTokenSecretKey: config.TURNSTILE_SECRET_KEY
|
|
761
767
|
})
|
|
762
768
|
}
|
|
763
|
-
if (config.GEETEST_CAPTCHA_ID && config.GEETEST_CAPTCHA_KEY) {
|
|
769
|
+
if ((!provider || provider === 'Geetest') && config.GEETEST_CAPTCHA_ID && config.GEETEST_CAPTCHA_KEY) {
|
|
764
770
|
await checkGeeTestCaptcha({
|
|
765
771
|
geeTestCaptchaId: config.GEETEST_CAPTCHA_ID,
|
|
766
772
|
geeTestCaptchaKey: config.GEETEST_CAPTCHA_KEY,
|
|
@@ -769,6 +775,15 @@ async function checkCaptcha (comment, request) {
|
|
|
769
775
|
geeTestPassToken: comment.geeTestPassToken,
|
|
770
776
|
geeTestGenTime: comment.geeTestGenTime
|
|
771
777
|
})
|
|
778
|
+
} else if (config.TURNSTILE_SITE_KEY) {
|
|
779
|
+
if (!config.TURNSTILE_SECRET_KEY) {
|
|
780
|
+
throw new Error('Turnstile 验证码配置不完整,缺少 TURNSTILE_SECRET_KEY')
|
|
781
|
+
}
|
|
782
|
+
await checkTurnstileCaptcha({
|
|
783
|
+
ip: getIp(request),
|
|
784
|
+
turnstileToken: comment.turnstileToken,
|
|
785
|
+
turnstileTokenSecretKey: config.TURNSTILE_SECRET_KEY
|
|
786
|
+
})
|
|
772
787
|
}
|
|
773
788
|
}
|
|
774
789
|
|
|
@@ -908,6 +923,21 @@ async function getRecentComments (event) {
|
|
|
908
923
|
return res
|
|
909
924
|
}
|
|
910
925
|
|
|
926
|
+
// 获取 QQ 昵称
|
|
927
|
+
async function qqNickGet (event) {
|
|
928
|
+
const res = {}
|
|
929
|
+
try {
|
|
930
|
+
validate(event, ['qq'])
|
|
931
|
+
const nick = await getQQNick(event.qq, config.QQ_API_KEY)
|
|
932
|
+
res.code = RES_CODE.SUCCESS
|
|
933
|
+
res.nick = nick
|
|
934
|
+
} catch (e) {
|
|
935
|
+
res.code = RES_CODE.FAIL
|
|
936
|
+
res.message = e.message
|
|
937
|
+
}
|
|
938
|
+
return res
|
|
939
|
+
}
|
|
940
|
+
|
|
911
941
|
// 修改配置
|
|
912
942
|
async function setConfig (event) {
|
|
913
943
|
const isAdminUser = isAdmin(event.accessToken)
|
package/mongo.js
CHANGED
|
@@ -32,6 +32,7 @@ const {
|
|
|
32
32
|
getPasswordStatus,
|
|
33
33
|
preCheckSpam,
|
|
34
34
|
checkTurnstileCaptcha,
|
|
35
|
+
checkGeeTestCaptcha,
|
|
35
36
|
getConfig,
|
|
36
37
|
getConfigForAdmin,
|
|
37
38
|
validate
|
|
@@ -735,12 +736,22 @@ async function limitFilter (request) {
|
|
|
735
736
|
}
|
|
736
737
|
|
|
737
738
|
async function checkCaptcha (comment, request) {
|
|
738
|
-
|
|
739
|
+
const provider = config.CAPTCHA_PROVIDER
|
|
740
|
+
if ((!provider || provider === 'Turnstile') && config.TURNSTILE_SITE_KEY && config.TURNSTILE_SECRET_KEY) {
|
|
739
741
|
await checkTurnstileCaptcha({
|
|
740
742
|
ip: getIp(request),
|
|
741
743
|
turnstileToken: comment.turnstileToken,
|
|
742
744
|
turnstileTokenSecretKey: config.TURNSTILE_SECRET_KEY
|
|
743
745
|
})
|
|
746
|
+
} else if (provider === 'Geetest' && config.GEETEST_CAPTCHA_ID && config.GEETEST_CAPTCHA_KEY) {
|
|
747
|
+
await checkGeeTestCaptcha({
|
|
748
|
+
geeTestCaptchaId: config.GEETEST_CAPTCHA_ID,
|
|
749
|
+
geeTestCaptchaKey: config.GEETEST_CAPTCHA_KEY,
|
|
750
|
+
geeTestLotNumber: comment.geeTestLotNumber,
|
|
751
|
+
geeTestCaptchaOutput: comment.geeTestCaptchaOutput,
|
|
752
|
+
geeTestPassToken: comment.geeTestPassToken,
|
|
753
|
+
geeTestGenTime: comment.geeTestGenTime
|
|
754
|
+
})
|
|
744
755
|
}
|
|
745
756
|
}
|
|
746
757
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tkserver",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.1",
|
|
4
4
|
"description": "A simple comment system.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"twikoo",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"get-user-ip": "^1.0.1",
|
|
32
32
|
"lokijs": "^1.5.12",
|
|
33
33
|
"mongodb": "^6.3.0",
|
|
34
|
-
"twikoo-func": "1.7.
|
|
34
|
+
"twikoo-func": "1.7.1",
|
|
35
35
|
"uuid": "^8.3.2"
|
|
36
36
|
}
|
|
37
37
|
}
|