Fix 404 for invalid email of actors, added APIs for client settings

This commit is contained in:
SepehrYahyaee
2026-05-16 15:47:31 +03:30
parent 7c76149c95
commit 7797a4ddab
8 changed files with 484 additions and 47 deletions

View File

@@ -23,10 +23,12 @@ export class LocalActorAuthGuard extends AuthGuard("actor") {
const path = request.url;
if (!token) {
if (path === "/actor/login") {
const loginData = await this.actorAuthService.loginActors(request.body);
if (this.isActorLoginRequest(request)) {
const loginData = await this.actorAuthService.loginFromCredentials(
request.body ?? {},
);
request.user = loginData;
request.identity = request;
request.identity = loginData;
return true;
} else {
throw new UnauthorizedException("Token not found");
@@ -59,6 +61,17 @@ export class LocalActorAuthGuard extends AuthGuard("actor") {
return true;
}
private isActorLoginRequest(request: {
url?: string;
path?: string;
route?: { path?: string };
}): boolean {
const path = (request.route?.path ?? request.url ?? request.path ?? "")
.split("?")[0]
.replace(/\/+$/, "");
return path === "/actor/login" || path.endsWith("/actor/login");
}
private extractTokenFromHeader(request: Request): string | undefined {
//@ts-ignore
const [type, token] = request.headers.authorization?.split(" ") ?? [];