Skip to content

Commit 1ffd854

Browse files
committed
Adds support for global domain
1 parent 5d80502 commit 1ffd854

11 files changed

+40
-7
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ your.template.html
7878
(expire)="handleExpire()"
7979
(load)="handleLoad()"
8080
(success)="handleSuccess($event)"
81+
[useGlobalDomain]="false"
8182
[size]="size"
8283
[hl]="lang"
8384
[theme]="theme"
@@ -104,6 +105,8 @@ your.template.html
104105

105106
this.reCaptchaV3Service.execute(this.siteKey, 'homepage', (token) => {
106107
console.log('This is your token: ', token);
108+
}, {
109+
useGlobalDomain: false
107110
});
108111
```
109112

@@ -117,6 +120,7 @@ your.template.html
117120
(ready)="handleReady()"
118121
(load)="handleLoad()"
119122
(success)="handleSuccess($event)"
123+
[useGlobalDomain]="false"
120124
[type]="type"
121125
[badge]="badge"
122126
[ngModel]="recaptcha"

demo/src/installation.component.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ export class AppModule { }
2929
[hl]="lang"
3030
[theme]="theme"
3131
[type]="type"
32+
[useGlobalDomain]="false"
33+
(reset)="handleReset()"
3234
(expire)="handleExpire()"
3335
(load)="handleLoad()"
3436
(success)="handleSuccess($event)"

demo/src/invisible-recaptcha-demo.component.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ <h4>Live example</h4>
9595
(ready)="handleReady()"
9696
(load)="handleLoad()"
9797
(success)="handleSuccess($event)"
98+
[useGlobalDomain]="false"
9899
[type]="type"
99100
[badge]="badge"
100101
[ngModel]="recaptcha"

demo/src/invisible-recaptcha-demo.component.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export class InvisibleReCaptchaDemoComponent implements AfterViewInit {
1818
(ready)="handleReady()"
1919
(load)="handleLoad()"
2020
(success)="handleSuccess($event)"
21+
[useGlobalDomain]="false"
2122
[type]="type"
2223
[badge]="badge"
2324
[ngModel]="recaptcha"

demo/src/re-captcha-2-demo.component.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ <h4>Live example</h4>
106106
(expire)="handleExpire()"
107107
(load)="handleLoad()"
108108
(success)="handleSuccess($event)"
109+
[useGlobalDomain]="false"
109110
[size]="size"
110111
[hl]="lang"
111112
[theme]="theme"

demo/src/re-captcha-2-demo.component.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import { NgxCaptchaModule } from 'ngx-captcha';
4040
(expire)="handleExpire()"
4141
(load)="handleLoad()"
4242
(success)="handleSuccess($event)"
43+
[useGlobalDomain]="false"
4344
[size]="size"
4445
[hl]="lang"
4546
[theme]="theme"

demo/src/re-captcha-3-demo.component.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ export class ReCaptcha3DemoComponent implements OnInit, AfterViewInit {
2626
public readonly methodCode = `
2727
this.reCaptchaV3Service.execute(this.siteKey, 'homepage', (token) => {
2828
console.log('This is your token: ', token);
29+
}, {
30+
useGlobalDomain: false // optional
2931
});
3032
`;
3133

@@ -62,6 +64,8 @@ export class ReCaptcha3DemoComponent implements OnInit, AfterViewInit {
6264
this.reCaptchaV3Service.execute(this.siteKey, 'reCaptcha3DemoPage', (token) => {
6365
this.token = token;
6466
console.log('Your token is: ', token);
67+
}, {
68+
useGlobalDomain: false
6569
});
6670
}
6771

projects/ngx-captcha-lib/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ your.template.html
7878
(expire)="handleExpire()"
7979
(load)="handleLoad()"
8080
(success)="handleSuccess($event)"
81+
[useGlobalDomain]="false"
8182
[size]="size"
8283
[hl]="lang"
8384
[theme]="theme"
@@ -104,6 +105,8 @@ your.template.html
104105

105106
this.reCaptchaV3Service.execute(this.siteKey, 'homepage', (token) => {
106107
console.log('This is your token: ', token);
108+
}, {
109+
useGlobalDomain: false
107110
});
108111
```
109112

@@ -117,6 +120,7 @@ your.template.html
117120
(ready)="handleReady()"
118121
(load)="handleLoad()"
119122
(success)="handleSuccess($event)"
123+
[useGlobalDomain]="false"
120124
[type]="type"
121125
[badge]="badge"
122126
[ngModel]="recaptcha"

projects/ngx-captcha-lib/src/lib/components/base-recaptcha.component.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ export abstract class BaseReCaptchaComponent implements OnChanges, ControlValueA
2929
*/
3030
@Input() siteKey: string;
3131

32+
/**
33+
* Indicates if global domain 'recaptcha.net' should be used instead of default domain ('google.com')
34+
*/
35+
@Input() useGlobalDomain: boolean = false;
36+
3237
/**
3338
* Type
3439
*/
@@ -256,7 +261,7 @@ export abstract class BaseReCaptchaComponent implements OnChanges, ControlValueA
256261
// create captcha wrapper
257262
this.createAndSetCaptchaElem();
258263

259-
this.scriptService.registerCaptchaScript('explicit', (grecaptcha) => {
264+
this.scriptService.registerCaptchaScript(this.useGlobalDomain, 'explicit', (grecaptcha) => {
260265
this.onloadCallback(grecaptcha);
261266
}, this.hl);
262267
}

projects/ngx-captcha-lib/src/lib/services/recaptcha_v3.service.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,13 @@ export class ReCaptchaV3Service {
2020
* @param siteKey Site key found in your google admin panel
2121
* @param action Action to log
2222
*/
23-
execute(siteKey: string, action: string, callback: (token: string) => void): void {
24-
this.scriptService.registerCaptchaScript(siteKey, (grecaptcha) => {
23+
execute(siteKey: string, action: string, callback: (token: string) => void, config?: {
24+
useGlobalDomain: boolean
25+
}): void {
26+
27+
const useGlobalDomain = config && config.useGlobalDomain ? true : false;
28+
29+
this.scriptService.registerCaptchaScript(useGlobalDomain, siteKey, (grecaptcha) => {
2530
this.zone.runOutsideAngular(() => {
2631
grecaptcha.execute(siteKey, {
2732
action: action

0 commit comments

Comments
 (0)