mirror of
https://github.com/bitwarden/browser
synced 2025-12-16 00:03:56 +00:00
Feature/use hcaptcha if bot (#430)
* Handle hcaptch required identity response * Refactor iframe component for captcha and webauthn * Send captcha token to server * Add captcha callback * Clear captcha state * Remove captcha storage * linter fixes * Rename iframe components to include IFrame * Remove callback in favor of extenting submit * Limit publickey credentials access * Use captcha bypass token to bypass captcha for twofactor auth flows * Linter fixes * Set iframe version in components
This commit is contained in:
22
common/src/misc/captcha_iframe.ts
Normal file
22
common/src/misc/captcha_iframe.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
import { I18nService } from '../abstractions/i18n.service';
|
||||
import { IFrameComponent } from './iframe_component';
|
||||
|
||||
export class CaptchaIFrame extends IFrameComponent {
|
||||
constructor(win: Window, webVaultUrl: string,
|
||||
private i18nService: I18nService, successCallback: (message: string) => any, errorCallback: (message: string) => any,
|
||||
infoCallback: (message: string) => any) {
|
||||
super(win, webVaultUrl, 'captcha-connector.html', 'hcaptcha_iframe', successCallback, errorCallback, (message: string) => {
|
||||
const parsedMessage = JSON.parse(message);
|
||||
if (typeof (parsedMessage) !== 'string') {
|
||||
this.iframe.height = (parsedMessage.height).toString();
|
||||
this.iframe.width = (parsedMessage.width).toString();
|
||||
} else {
|
||||
infoCallback(parsedMessage);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
init(siteKey: string): void {
|
||||
super.initComponent(this.createParams({ siteKey: siteKey, locale: this.i18nService.translationLocale }, 1));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user