Advertisement
Guest User

Untitled

a guest
Dec 4th, 2016
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -----app.ts--------
  2. // unauthenticated routes
  3. app.use("/api/v1/login", login);
  4.  
  5. // authenticated routes
  6. app.use(authMiddleware);
  7.  
  8.  
  9. -----login.ts--------
  10. router.get("/", async (req, res) => {
  11.   logger.info(`Initiating oauth request, redirecting to ${authorizationUri}`);
  12.   res.redirect(authorizationUri);
  13. });
  14.  
  15. router.get("/callback", async (req, res, next) => {
  16.   const token = await fafOAuth.code.getToken(req.originalUrl).catch(next);
  17.   const apiAccessor = new FafApiAccessor(token);
  18.   const player = await apiAccessor.getPlayerMe().catch(next);
  19.   const {id, login} = player.data.data.attributes;
  20.   if ((await getUser(id)) == null) {
  21.     await insertNewUsers([{id, username: login}]).catch(next);
  22.   } else {
  23.     await updateUser(id, login).catch(next);
  24.   }
  25.   res.send({message: "Successfully logged in"});
  26. });
  27.  
  28.  
  29. -----authMiddlware.ts--------
  30. export default function authHandler(req: Request, res: Response, next: NextFunction) {
  31.   const token = req.headers.authorization;
  32.   if (token) {
  33.     njwt.verify(token, SIGNING_KEY, (err, ver) => {
  34.       if (err) {
  35.         next(new TokenExpired());
  36.       } else {
  37.         (<IAuthedRequest> req).user = ver.body;
  38.         next();
  39.       }
  40.     });
  41.   } else {
  42.     // token not sent
  43.     next(new UnauthorizedAccess());
  44.   }
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement