Skip to content

Commit a24ff32

Browse files
author
lucifer
committed
feat: 付费功能完成
1 parent 20ca286 commit a24ff32

File tree

4 files changed

+23
-7
lines changed

4 files changed

+23
-7
lines changed

app.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ const bodyparser = require("koa-bodyparser");
88
const logger = require("koa-logger");
99

1010
const passport = require("./middleware/passport");
11+
const pay = require("./middleware/pay");
1112
const index = require("./routes/index");
1213
const users = require("./routes/users");
1314
const dailyProblem = require("./routes/dailyProblem");
@@ -31,6 +32,7 @@ if (process.env.NODE_ENV === "development") {
3132
} else {
3233
app.use(passport);
3334
}
35+
app.use(pay({ whitelist: ["/api/v1/user", "/api/v1/logout"] }));
3436
app.use(require("koa-static")(__dirname + "/public"));
3537

3638
app.use(

middleware/mockUserInfo.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ module.exports = async function checkAuth(ctx, next) {
66
login: "azl397985856",
77
avatar_url: "https://avatars.githubusercontent.com/u/12479470?v=4",
88
name: "lucifer",
9-
pay: true,
9+
pay: false,
1010
};
1111

1212
await next();

middleware/passport.js

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,7 @@ module.exports = async function checkAuth(ctx, next) {
3333
ctx.session.user = duser;
3434
await next();
3535
return;
36-
} else {
37-
ctx.body = fail({
38-
message: "本页内容需付费才能查看,请和 lucifer 进行联系~",
39-
code: 93,
40-
});
4136
}
42-
return;
4337
} catch (err) {
4438
console.log("token 解析失败:", err);
4539
return;

middleware/pay.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
const { fail } = require("../utils/request");
2+
//
3+
module.exports = function ({ whitelist }) {
4+
return async function checkAuth(ctx, next) {
5+
if (whitelist.includes(ctx.path)) await next();
6+
else {
7+
if (ctx?.session?.user) {
8+
if (ctx.session.user.pay) {
9+
await next();
10+
} else {
11+
ctx.body = fail({
12+
message: "本页内容需付费才能查看,请和 lucifer 进行联系~",
13+
code: 93,
14+
});
15+
return;
16+
}
17+
}
18+
}
19+
};
20+
};

0 commit comments

Comments
 (0)