27 lines
922 B
TypeScript
27 lines
922 B
TypeScript
import { Request, Response, Router } from "express"
|
|
import Stacker from "../middlewares/stacker";
|
|
import { GetClientAuthMiddleware } from "../middlewares/client";
|
|
import { GetUserMiddleware } from "../middlewares/user";
|
|
import { createJWT } from "../../keys";
|
|
|
|
|
|
const ClientRouter = Router();
|
|
/**
|
|
* @api {get} /client/user
|
|
* @apiName ClientUser
|
|
*
|
|
* @apiGroup client
|
|
* @apiPermission user_client Requires ClientID and Authenticated User
|
|
*
|
|
* @apiParam {String} redirect_uri URL to redirect to on success
|
|
*/
|
|
ClientRouter.get("/user", Stacker(GetClientAuthMiddleware(false), GetUserMiddleware(true, false), async (req: Request, res: Response) => {
|
|
let jwt = await createJWT({
|
|
client: req.client.client_id,
|
|
uid: req.user.uid,
|
|
username: req.user.username
|
|
}, 30); //after 30 seconds this token is invalid
|
|
res.redirect(req.query.redirect_uri + "?jwt=" + jwt)
|
|
}));
|
|
|
|
export default ClientRouter; |