2021-04-11 12:35:55 +02:00
|
|
|
const { Cookies } = require("../constants")
|
2021-04-12 19:31:58 +02:00
|
|
|
const { getCookie } = require("../utils")
|
|
|
|
const { getEmailFromUserID } = require("../db/utils")
|
2021-04-11 12:35:55 +02:00
|
|
|
|
|
|
|
module.exports = async (ctx, next) => {
|
|
|
|
try {
|
|
|
|
// check the actual user is authenticated first
|
2021-04-12 19:31:58 +02:00
|
|
|
const authCookie = getCookie(ctx, Cookies.Auth)
|
2021-04-11 12:35:55 +02:00
|
|
|
|
|
|
|
if (authCookie) {
|
|
|
|
ctx.isAuthenticated = true
|
2021-04-12 19:31:58 +02:00
|
|
|
ctx.user = authCookie
|
|
|
|
// make sure email is correct from ID
|
2021-04-13 12:56:57 +02:00
|
|
|
ctx.user.email = getEmailFromUserID(authCookie.userId)
|
2021-04-11 12:35:55 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
await next()
|
|
|
|
} catch (err) {
|
|
|
|
ctx.throw(err.status || 403, err.text)
|
|
|
|
}
|
|
|
|
}
|