Authenticating a page or a service is done by adding the passport-jwt middleware to a route. Line 15 and line 22.
Extraction of JWT from the cookie is done by creating a custom extractor for passport-jwt. Line 66 and 73
Full code can be downloaded from https://github.com/MichaelBuen/test-code-auth
Here's the structure of ILoggedUserJwtPayload:
import { ILoggedUser } from './ILoggedUser'; export interface ILoggedUserJwtPayload { // subject sub: ILoggedUser; // expires exp: number; }
This is the ILoggedUserJwtPayload sub property's structure:
export interface ILoggedUser { source: string | undefined; // provider, e.g., facebook, google id: string | undefined; // id shownName: string | undefined; // displayName }
Here's another route authenticated by passport-jwt middleware:
app.get('/api/v1/me', passport.authenticate('jwt', {session: false}), (req, res) => { const user = req.user as ILoggedUser; res.json(user); } );
Happy coding!
No comments:
Post a Comment