Merge remote-tracking branch 'origin/develop' into swaggerPusher
This commit is contained in:
@@ -6,6 +6,7 @@ import { parse } from "query-string";
|
||||
import { openIDClient } from "../Services/OpenIDClient";
|
||||
import { DISABLE_ANONYMOUS } from "../Enum/EnvironmentVariable";
|
||||
import { RegisterData } from "../Messages/JsonMessages/RegisterData";
|
||||
import { adminService } from "../Services/AdminService";
|
||||
|
||||
export interface TokenInterface {
|
||||
userUuid: string;
|
||||
@@ -18,6 +19,7 @@ export class AuthenticateController extends BaseHttpController {
|
||||
this.register();
|
||||
this.anonymLogin();
|
||||
this.profileCallback();
|
||||
this.me();
|
||||
}
|
||||
|
||||
openIDLogin() {
|
||||
@@ -166,10 +168,11 @@ export class AuthenticateController extends BaseHttpController {
|
||||
|
||||
//Get user data from Admin Back Office
|
||||
//This is very important to create User Local in LocalStorage in WorkAdventure
|
||||
const resUserData = await this.getUserByUserIdentifier(
|
||||
const resUserData = await adminService.fetchMemberDataByUuid(
|
||||
authTokenData.identifier,
|
||||
playUri as string,
|
||||
IPAddress
|
||||
IPAddress,
|
||||
[]
|
||||
);
|
||||
|
||||
if (authTokenData.accessToken == undefined) {
|
||||
@@ -178,7 +181,7 @@ export class AuthenticateController extends BaseHttpController {
|
||||
if (!code && !nonce) {
|
||||
return res.json({ ...resUserData, authToken: token });
|
||||
}
|
||||
console.error("Token cannot to be check on OpenId provider");
|
||||
console.error("Token cannot be checked on OpenId provider");
|
||||
res.status(500);
|
||||
res.send("User cannot to be connected on openid provider");
|
||||
return;
|
||||
@@ -221,7 +224,7 @@ export class AuthenticateController extends BaseHttpController {
|
||||
|
||||
//Get user data from Admin Back Office
|
||||
//This is very important to create User Local in LocalStorage in WorkAdventure
|
||||
const data = await this.getUserByUserIdentifier(email, playUri as string, IPAddress);
|
||||
const data = await adminService.fetchMemberDataByUuid(email, playUri as string, IPAddress, []);
|
||||
|
||||
return res.json({ ...data, authToken, username: userInfo?.username, locale: userInfo?.locale });
|
||||
} catch (e) {
|
||||
@@ -253,7 +256,7 @@ export class AuthenticateController extends BaseHttpController {
|
||||
try {
|
||||
const authTokenData: AuthTokenData = jwtTokenManager.verifyJWTToken(token as string, false);
|
||||
if (authTokenData.accessToken == undefined) {
|
||||
throw Error("Token cannot to be logout on Hydra");
|
||||
throw Error("Token cannot be logout on Hydra");
|
||||
}
|
||||
await openIDClient.logoutUser(authTokenData.accessToken);
|
||||
} catch (error) {
|
||||
@@ -412,7 +415,7 @@ export class AuthenticateController extends BaseHttpController {
|
||||
try {
|
||||
const authTokenData: AuthTokenData = jwtTokenManager.verifyJWTToken(token as string, false);
|
||||
if (authTokenData.accessToken == undefined) {
|
||||
throw Error("Token cannot to be check on Hydra");
|
||||
throw Error("Token cannot be checked on OpenID connect provider");
|
||||
}
|
||||
await openIDClient.checkTokenAuth(authTokenData.accessToken);
|
||||
|
||||
@@ -433,6 +436,52 @@ export class AuthenticateController extends BaseHttpController {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @openapi
|
||||
* /me:
|
||||
* get:
|
||||
* description: ???
|
||||
* parameters:
|
||||
* - name: "token"
|
||||
* in: "query"
|
||||
* description: "A JWT authentication token ???"
|
||||
* required: true
|
||||
* type: "string"
|
||||
* responses:
|
||||
* 200:
|
||||
* description: Data of user connected
|
||||
*/
|
||||
me() {
|
||||
// @ts-ignore
|
||||
this.app.get("/me", async (req, res): void => {
|
||||
const { token } = parse(req.path_query);
|
||||
try {
|
||||
//verify connected by token
|
||||
if (token != undefined) {
|
||||
try {
|
||||
const authTokenData: AuthTokenData = jwtTokenManager.verifyJWTToken(token as string, false);
|
||||
if (authTokenData.accessToken == undefined) {
|
||||
throw Error("Token cannot to be checked on Hydra");
|
||||
}
|
||||
const me = await openIDClient.checkTokenAuth(authTokenData.accessToken);
|
||||
|
||||
//get login profile
|
||||
res.status(200);
|
||||
res.json({ ...me });
|
||||
return;
|
||||
} catch (error) {
|
||||
this.castErrorToResponse(error, res);
|
||||
return;
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("me => ERROR", error);
|
||||
this.castErrorToResponse(error, res);
|
||||
return;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param email
|
||||
|
||||
@@ -160,12 +160,12 @@ export class MapController extends BaseHttpController {
|
||||
}
|
||||
}
|
||||
}
|
||||
const mapDetails = isMapDetailsData.safeParse(
|
||||
const mapDetails = isMapDetailsData.parse(
|
||||
await adminApi.fetchMapDetails(query.playUri as string, userId)
|
||||
);
|
||||
|
||||
if (mapDetails.success && DISABLE_ANONYMOUS) {
|
||||
mapDetails.data.authenticationMandatory = true;
|
||||
if (DISABLE_ANONYMOUS) {
|
||||
mapDetails.authenticationMandatory = true;
|
||||
}
|
||||
|
||||
res.json(mapDetails);
|
||||
|
||||
Reference in New Issue
Block a user