style: fix linting issues met ESLint
This commit is contained in:
parent
4a236a7397
commit
b12c743440
3 changed files with 9 additions and 11 deletions
|
@ -12,7 +12,7 @@ const JWKS_CACHE = true;
|
||||||
const JWKS_RATE_LIMIT = true;
|
const JWKS_RATE_LIMIT = true;
|
||||||
const REQUEST_PROPERTY_FOR_JWT_PAYLOAD = "jwtPayload";
|
const REQUEST_PROPERTY_FOR_JWT_PAYLOAD = "jwtPayload";
|
||||||
const JWT_ALGORITHM = "RS256"; // Not configurable via env vars since supporting other algorithms would
|
const JWT_ALGORITHM = "RS256"; // Not configurable via env vars since supporting other algorithms would
|
||||||
// require additional libraries to be added.
|
// Require additional libraries to be added.
|
||||||
|
|
||||||
const JWT_PROPERTY_NAMES = {
|
const JWT_PROPERTY_NAMES = {
|
||||||
username: "preferred_username",
|
username: "preferred_username",
|
||||||
|
@ -50,9 +50,9 @@ const verifyJwtToken = expressjwt({
|
||||||
throw new Error("Invalid token");
|
throw new Error("Invalid token");
|
||||||
}
|
}
|
||||||
|
|
||||||
let issuer = (token.payload as JwtPayload).iss;
|
const issuer = (token.payload as JwtPayload).iss;
|
||||||
|
|
||||||
let idpConfig = Object.values(idpConfigs).find(config => config.issuer === issuer);
|
const idpConfig = Object.values(idpConfigs).find(config => config.issuer === issuer);
|
||||||
if (!idpConfig) {
|
if (!idpConfig) {
|
||||||
throw new Error("Issuer not accepted.");
|
throw new Error("Issuer not accepted.");
|
||||||
}
|
}
|
||||||
|
@ -76,7 +76,7 @@ function getAuthenticationInfo(req: AuthenticatedRequest): AuthenticationInfo |
|
||||||
if (!req.jwtPayload) {
|
if (!req.jwtPayload) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let issuer = req.jwtPayload.iss;
|
const issuer = req.jwtPayload.iss;
|
||||||
let accountType: "student" | "teacher";
|
let accountType: "student" | "teacher";
|
||||||
|
|
||||||
if (issuer === idpConfigs.student.issuer) {
|
if (issuer === idpConfigs.student.issuer) {
|
||||||
|
@ -113,8 +113,7 @@ export const authenticateUser = [verifyJwtToken, addAuthenticationInfo];
|
||||||
* @param accessCondition Predicate over the current AuthenticationInfo. Access is only granted when this evaluates
|
* @param accessCondition Predicate over the current AuthenticationInfo. Access is only granted when this evaluates
|
||||||
* to true.
|
* to true.
|
||||||
*/
|
*/
|
||||||
export const authorize = (accessCondition: (auth: AuthenticationInfo) => boolean) => {
|
export const authorize = (accessCondition: (auth: AuthenticationInfo) => boolean) => (req: AuthenticatedRequest, res: express.Response, next: express.NextFunction): void => {
|
||||||
return (req: AuthenticatedRequest, res: express.Response, next: express.NextFunction): void => {
|
|
||||||
if (!req.auth) {
|
if (!req.auth) {
|
||||||
throw new UnauthorizedException();
|
throw new UnauthorizedException();
|
||||||
} else if (!accessCondition(req.auth)) {
|
} else if (!accessCondition(req.auth)) {
|
||||||
|
@ -123,7 +122,6 @@ export const authorize = (accessCondition: (auth: AuthenticationInfo) => boolean
|
||||||
next();
|
next();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Middleware which rejects all unauthenticated users, but accepts all authenticated users.
|
* Middleware which rejects all unauthenticated users, but accepts all authenticated users.
|
||||||
|
|
|
@ -3,7 +3,7 @@ import {getFrontendAuthConfig} from "../controllers/auth.js";
|
||||||
import {authenticatedOnly, studentsOnly, teachersOnly} from "../middleware/auth/auth.js";
|
import {authenticatedOnly, studentsOnly, teachersOnly} from "../middleware/auth/auth.js";
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
|
|
||||||
// returns auth configuration for frontend
|
// Returns auth configuration for frontend
|
||||||
router.get('/config', (req, res) => {
|
router.get('/config', (req, res) => {
|
||||||
res.json(getFrontendAuthConfig());
|
res.json(getFrontendAuthConfig());
|
||||||
});
|
});
|
||||||
|
|
|
@ -27,7 +27,7 @@ async function loadUser(): Promise<User | null> {
|
||||||
if (!activeRole) {
|
if (!activeRole) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
let user = await userManagers[activeRole].getUser();
|
const user = await userManagers[activeRole].getUser();
|
||||||
authState.user = user;
|
authState.user = user;
|
||||||
authState.accessToken = user?.access_token || null;
|
authState.accessToken = user?.access_token || null;
|
||||||
authState.activeRole = activeRole || null;
|
authState.activeRole = activeRole || null;
|
||||||
|
@ -121,9 +121,9 @@ apiClient.interceptors.response.use(
|
||||||
console.log("Access token expired, trying to refresh...");
|
console.log("Access token expired, trying to refresh...");
|
||||||
await renewToken();
|
await renewToken();
|
||||||
return apiClient(error.config!); // Retry the request
|
return apiClient(error.config!); // Retry the request
|
||||||
} else { // Apparently, the user got a 401 because he was not logged in yet at all. Redirect him to login.
|
} // Apparently, the user got a 401 because he was not logged in yet at all. Redirect him to login.
|
||||||
await initiateLogin()
|
await initiateLogin()
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return Promise.reject(error);
|
return Promise.reject(error);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue