mirror of
https://github.com/bitwarden/browser
synced 2025-12-13 23:03:32 +00:00
Auth/PM-6198 - Registration with Email Verification - Call email clicked endpoint (#10139)
* PM-6198 - Majority of client work done; WIP on registration finish comp * PM-6198 - Registration Finish - Add registerVerificationEmailClicked logic * PM-6198 - RegistrationLinkExpired component; added translations on other clients just in case we use the component on other clients in the future. * PM-6198 - Clean up comment
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import { RegisterFinishRequest } from "../models/request/registration/register-finish.request";
|
||||
import { RegisterSendVerificationEmailRequest } from "../models/request/registration/register-send-verification-email.request";
|
||||
import { RegisterVerificationEmailClickedRequest } from "../models/request/registration/register-verification-email-clicked.request";
|
||||
import { Verification } from "../types/verification";
|
||||
|
||||
export abstract class AccountApiService {
|
||||
@@ -26,6 +27,19 @@ export abstract class AccountApiService {
|
||||
request: RegisterSendVerificationEmailRequest,
|
||||
): Promise<null | string>;
|
||||
|
||||
/**
|
||||
* Raises a server event to identify when users click the email verification link and land
|
||||
* on the registration finish screen.
|
||||
*
|
||||
* @param request - The request object containing the email verification token and the
|
||||
* user's email address (which is required to validate the token)
|
||||
* @returns A promise that resolves when the event is logged on the server succcessfully or a bad
|
||||
* request if the token is invalid for any reason.
|
||||
*/
|
||||
abstract registerVerificationEmailClicked(
|
||||
request: RegisterVerificationEmailClickedRequest,
|
||||
): Promise<void>;
|
||||
|
||||
/**
|
||||
* Completes the registration process.
|
||||
*
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
export class RegisterVerificationEmailClickedRequest {
|
||||
constructor(
|
||||
public email: string,
|
||||
public emailVerificationToken: string,
|
||||
) {}
|
||||
}
|
||||
@@ -9,6 +9,7 @@ import { InternalAccountService } from "../abstractions/account.service";
|
||||
import { UserVerificationService } from "../abstractions/user-verification/user-verification.service.abstraction";
|
||||
import { RegisterFinishRequest } from "../models/request/registration/register-finish.request";
|
||||
import { RegisterSendVerificationEmailRequest } from "../models/request/registration/register-send-verification-email.request";
|
||||
import { RegisterVerificationEmailClickedRequest } from "../models/request/registration/register-verification-email-clicked.request";
|
||||
import { Verification } from "../types/verification";
|
||||
|
||||
export class AccountApiServiceImplementation implements AccountApiService {
|
||||
@@ -60,6 +61,28 @@ export class AccountApiServiceImplementation implements AccountApiService {
|
||||
}
|
||||
}
|
||||
|
||||
async registerVerificationEmailClicked(
|
||||
request: RegisterVerificationEmailClickedRequest,
|
||||
): Promise<void> {
|
||||
const env = await firstValueFrom(this.environmentService.environment$);
|
||||
|
||||
try {
|
||||
const response = await this.apiService.send(
|
||||
"POST",
|
||||
"/accounts/register/verification-email-clicked",
|
||||
request,
|
||||
false,
|
||||
false,
|
||||
env.getIdentityUrl(),
|
||||
);
|
||||
|
||||
return response;
|
||||
} catch (e: unknown) {
|
||||
this.logService.error(e);
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
async registerFinish(request: RegisterFinishRequest): Promise<string> {
|
||||
const env = await firstValueFrom(this.environmentService.environment$);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user