Val Town is a social website to write and deploy JavaScript.
Build APIs and schedule functions from your browser.
Readme

safeAssertBearerToken

A safe version of assertBearerToken that handles errors and presents them as a property on the returned object instead.

Example

const handler = (req, res) => { const authorization = req.get('authorization'); const { error, data: token } = @neverstew.safeAssertBearerToken(@me.secrets.superSecret, authorization); if (error) { res.status(401).send("Unauthorized"); return; } res.json(token); }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import { assertBearerToken } from "https://esm.town/v/neverstew/assertBearerToken";
export const safeAssertBearerToken = async <T = {}>(
secret: string,
authHeader: string | null | undefined,
): Promise<
{
error: null;
data: T;
} | {
error: {};
data: null;
}
> => {
try {
const data = await assertBearerToken(
secret,
authHeader,
) as T;
return { error: null, data };
}
catch (error) {
return { error, data: null };
}
};
October 23, 2023