chore: generate mfa secret in backend (#2930) [skip e2e]
* chore: get mfa secret from backend * chore: remove unused code
This commit is contained in:
committed by
GitHub
parent
d6840ba41c
commit
2338449425
@@ -42,8 +42,8 @@ export class SettingsService extends AbstractService implements SettingsClientIn
|
||||
return this.provider.updateSubscriptionSetting(name, payload, sensitive)
|
||||
}
|
||||
|
||||
async updateSetting(name: SettingName, payload: string, sensitive = false) {
|
||||
return this.provider.updateSetting(name, payload, sensitive)
|
||||
async updateSetting(name: SettingName, payload: string, sensitive = false, totpToken?: string) {
|
||||
return this.provider.updateSetting(name, payload, sensitive, totpToken)
|
||||
}
|
||||
|
||||
async getDoesSensitiveSettingExist(name: SettingName) {
|
||||
@@ -54,6 +54,19 @@ export class SettingsService extends AbstractService implements SettingsClientIn
|
||||
return this.provider.deleteSetting(name, serverPassword)
|
||||
}
|
||||
|
||||
async generateMfaSecret(): Promise<string> {
|
||||
return this.provider.getMfaSecret()
|
||||
}
|
||||
|
||||
async updateMfaSetting(secret: string, totpToken: string): Promise<void> {
|
||||
return this.provider.updateSetting(
|
||||
SettingName.create(SettingName.NAMES.MfaSecret).getValue(),
|
||||
secret,
|
||||
true,
|
||||
totpToken,
|
||||
)
|
||||
}
|
||||
|
||||
getEmailBackupFrequencyOptionLabel(frequency: EmailBackupFrequency): string {
|
||||
return this.frequencyOptionsLabels[frequency]
|
||||
}
|
||||
|
||||
@@ -9,9 +9,13 @@ export interface SettingsClientInterface {
|
||||
|
||||
getDoesSensitiveSettingExist(name: SettingName): Promise<boolean>
|
||||
|
||||
updateSetting(name: SettingName, payload: string, sensitive?: boolean): Promise<void>
|
||||
updateSetting(name: SettingName, payload: string, sensitive?: boolean, totpToken?: string): Promise<void>
|
||||
|
||||
deleteSetting(name: SettingName, serverPassword?: string): Promise<void>
|
||||
|
||||
generateMfaSecret(): Promise<string>
|
||||
|
||||
updateMfaSetting(secret: string, totpToken: string): Promise<void>
|
||||
|
||||
getEmailBackupFrequencyOptionLabel(frequency: EmailBackupFrequency): string
|
||||
}
|
||||
|
||||
@@ -102,8 +102,8 @@ export class SettingsGateway {
|
||||
return response.data?.success ?? false
|
||||
}
|
||||
|
||||
async updateSetting(name: SettingName, payload: string, sensitive: boolean): Promise<void> {
|
||||
const response = await this.settingsApi.updateSetting(this.userUuid, name.value, payload, sensitive)
|
||||
async updateSetting(name: SettingName, payload: string, sensitive: boolean, totpToken?: string): Promise<void> {
|
||||
const response = await this.settingsApi.updateSetting(this.userUuid, name.value, payload, sensitive, totpToken)
|
||||
if (isErrorResponse(response)) {
|
||||
throw new Error(getErrorFromErrorResponse(response).message)
|
||||
}
|
||||
@@ -116,6 +116,14 @@ export class SettingsGateway {
|
||||
}
|
||||
}
|
||||
|
||||
async getMfaSecret(): Promise<string> {
|
||||
const response = await this.settingsApi.getMfaSecret(this.userUuid)
|
||||
if (isErrorResponse(response)) {
|
||||
throw new Error(getErrorFromErrorResponse(response).message)
|
||||
}
|
||||
return response.data.secret
|
||||
}
|
||||
|
||||
deinit() {
|
||||
;(this.settingsApi as unknown) = undefined
|
||||
;(this.userProvider as unknown) = undefined
|
||||
|
||||
@@ -7,6 +7,10 @@ import {
|
||||
} from '@standardnotes/responses'
|
||||
import { UuidString } from '@Lib/Types/UuidString'
|
||||
|
||||
export interface MfaSecretResponse {
|
||||
secret: string
|
||||
}
|
||||
|
||||
export interface SettingsServerInterface {
|
||||
listSettings(userUuid: UuidString): Promise<HttpResponse<ListSettingsResponse>>
|
||||
|
||||
@@ -15,6 +19,7 @@ export interface SettingsServerInterface {
|
||||
settingName: string,
|
||||
settingValue: string,
|
||||
sensitive: boolean,
|
||||
totpToken?: string,
|
||||
): Promise<HttpResponse<UpdateSettingResponse>>
|
||||
|
||||
getSetting(
|
||||
@@ -32,6 +37,8 @@ export interface SettingsServerInterface {
|
||||
sensitive: boolean,
|
||||
): Promise<HttpResponse<UpdateSettingResponse>>
|
||||
|
||||
getMfaSecret(userUuid: UuidString): Promise<HttpResponse<MfaSecretResponse>>
|
||||
|
||||
deleteSetting(
|
||||
userUuid: UuidString,
|
||||
settingName: string,
|
||||
|
||||
Reference in New Issue
Block a user