mirror of
https://github.com/kremalicious/umami.git
synced 2025-02-03 15:47:30 +01:00
Fetch user inside useAuth.
This commit is contained in:
parent
1bce4f2174
commit
3b705e6cb4
@ -48,7 +48,11 @@ export function isValidToken(token, validation) {
|
|||||||
export async function allowQuery(req, type) {
|
export async function allowQuery(req, type) {
|
||||||
const { id } = req.query;
|
const { id } = req.query;
|
||||||
|
|
||||||
const { userId, isAdmin, shareToken } = req.auth ?? {};
|
const {
|
||||||
|
user: { id: userId },
|
||||||
|
isAdmin,
|
||||||
|
shareToken,
|
||||||
|
} = req.auth ?? {};
|
||||||
|
|
||||||
if (isAdmin) {
|
if (isAdmin) {
|
||||||
return true;
|
return true;
|
||||||
|
@ -4,6 +4,8 @@ import cors from 'cors';
|
|||||||
import { findSession } from 'lib/session';
|
import { findSession } from 'lib/session';
|
||||||
import { parseShareToken, getAuthToken } from 'lib/auth';
|
import { parseShareToken, getAuthToken } from 'lib/auth';
|
||||||
import { secret } from './crypto';
|
import { secret } from './crypto';
|
||||||
|
import redis from 'lib/redis';
|
||||||
|
import { getUser } from '../queries';
|
||||||
|
|
||||||
const log = debug('umami:middleware');
|
const log = debug('umami:middleware');
|
||||||
|
|
||||||
@ -23,14 +25,21 @@ export const useSession = createMiddleware(async (req, res, next) => {
|
|||||||
|
|
||||||
export const useAuth = createMiddleware(async (req, res, next) => {
|
export const useAuth = createMiddleware(async (req, res, next) => {
|
||||||
const token = getAuthToken(req);
|
const token = getAuthToken(req);
|
||||||
const payload = parseSecureToken(token, secret());
|
const key = parseSecureToken(token, secret());
|
||||||
const shareToken = await parseShareToken(req);
|
const shareToken = await parseShareToken(req);
|
||||||
|
|
||||||
if (!token && !shareToken) {
|
let user;
|
||||||
|
if (redis.enabled) {
|
||||||
|
user = await redis.get(key);
|
||||||
|
} else {
|
||||||
|
user = await getUser({ id: key });
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!user && !shareToken) {
|
||||||
log('useAuth:user-not-authorized');
|
log('useAuth:user-not-authorized');
|
||||||
return unauthorized(res);
|
return unauthorized(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
req.auth = { ...payload, shareToken };
|
req.auth = { user, token, shareToken, key };
|
||||||
next();
|
next();
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user