mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-06-02 19:14:35 -04:00
Add turnstile functionality
This commit is contained in:
parent
c65cfcb31b
commit
f9e709af5b
@ -65,6 +65,25 @@ class AccountController extends BaseController
|
|||||||
*/
|
*/
|
||||||
public function store(CreateAccountRequest $request)
|
public function store(CreateAccountRequest $request)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if(config('ninja.cloudflare.turnstile.secret')) {
|
||||||
|
$r = \Illuminate\Support\Facades\Http::post('https://challenges.cloudflare.com/turnstile/v0/siteverify', [
|
||||||
|
'secret' => config('ninja.cloudflare.turnstile.secret'),
|
||||||
|
'response' => $request->input('cf-turnstile-response'),
|
||||||
|
'remoteip' => $request->getClientIp(),
|
||||||
|
]);
|
||||||
|
|
||||||
|
if($r->successful()){
|
||||||
|
|
||||||
|
if($r->json()['success'] === true) {
|
||||||
|
// return response()->json(['message' => 'Captcha Success'], 200);
|
||||||
|
} else {
|
||||||
|
return response()->json(['message' => 'Captcha Failed'], 400);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
$account = (new CreateAccount($request->all(), $request->getClientIp()))->handle();
|
$account = (new CreateAccount($request->all(), $request->getClientIp()))->handle();
|
||||||
if (! ($account instanceof Account)) {
|
if (! ($account instanceof Account)) {
|
||||||
return $account;
|
return $account;
|
||||||
|
@ -144,6 +144,9 @@ class TwilioController extends BaseController
|
|||||||
*/
|
*/
|
||||||
public function generate2faResetCode(Generate2faRequest $request)
|
public function generate2faResetCode(Generate2faRequest $request)
|
||||||
{
|
{
|
||||||
|
nlog($request->all());
|
||||||
|
nlog($request->headers());
|
||||||
|
|
||||||
$user = User::where('email', $request->email)->first();
|
$user = User::where('email', $request->email)->first();
|
||||||
|
|
||||||
if (!$user) {
|
if (!$user) {
|
||||||
@ -154,6 +157,11 @@ class TwilioController extends BaseController
|
|||||||
return response()->json(['message' => 'Please verify your email address before verifying your phone number'], 400);
|
return response()->json(['message' => 'Please verify your email address before verifying your phone number'], 400);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(!$user->first_name || !$user->last_name) {
|
||||||
|
return response()->json(['message' => 'Please update your first and/or last name in the User Details before verifying your number.'], 400);
|
||||||
|
}
|
||||||
|
|
||||||
if (!$user->phone || $user->phone == '') {
|
if (!$user->phone || $user->phone == '') {
|
||||||
return response()->json(['message' => 'User found, but no valid phone number on file, please contact support.'], 400);
|
return response()->json(['message' => 'User found, but no valid phone number on file, please contact support.'], 400);
|
||||||
}
|
}
|
||||||
|
@ -228,5 +228,10 @@ return [
|
|||||||
'secret' => env('PAYPAL_SECRET', null),
|
'secret' => env('PAYPAL_SECRET', null),
|
||||||
'client_id' => env('PAYPAL_CLIENT_ID', null),
|
'client_id' => env('PAYPAL_CLIENT_ID', null),
|
||||||
'webhook_id' => env('PAYPAL_WEBHOOK_ID', null),
|
'webhook_id' => env('PAYPAL_WEBHOOK_ID', null),
|
||||||
|
],
|
||||||
|
'cloudflare' => [
|
||||||
|
'turnstile' => [
|
||||||
|
'secret' => env('CLOUDFLARE_SECRET', null),
|
||||||
|
]
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
@ -360,7 +360,7 @@ Route::group(['middleware' => ['throttle:api', 'api_db', 'token_auth', 'locale']
|
|||||||
Route::post('settings/enable_two_factor', [TwoFactorController::class, 'enableTwoFactor']);
|
Route::post('settings/enable_two_factor', [TwoFactorController::class, 'enableTwoFactor']);
|
||||||
Route::post('settings/disable_two_factor', [TwoFactorController::class, 'disableTwoFactor']);
|
Route::post('settings/disable_two_factor', [TwoFactorController::class, 'disableTwoFactor']);
|
||||||
|
|
||||||
Route::post('verify', [TwilioController::class, 'generate'])->name('verify.generate')->middleware('throttle:100,1');
|
Route::post('verify', [TwilioController::class, 'generate'])->name('verify.generate')->middleware('throttle:3,1');
|
||||||
Route::post('verify/confirm', [TwilioController::class, 'confirm'])->name('verify.confirm');
|
Route::post('verify/confirm', [TwilioController::class, 'confirm'])->name('verify.confirm');
|
||||||
|
|
||||||
Route::resource('vendors', VendorController::class); // name = (vendors. index / create / show / update / destroy / edit
|
Route::resource('vendors', VendorController::class); // name = (vendors. index / create / show / update / destroy / edit
|
||||||
@ -403,8 +403,8 @@ Route::group(['middleware' => ['throttle:api', 'api_db', 'token_auth', 'locale']
|
|||||||
Route::post('api/v1/yodlee/status/{account_number}', [YodleeController::class, 'accountStatus']);
|
Route::post('api/v1/yodlee/status/{account_number}', [YodleeController::class, 'accountStatus']);
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::post('api/v1/sms_reset', [TwilioController::class, 'generate2faResetCode'])->name('sms_reset.generate')->middleware('throttle:10,1');
|
Route::post('api/v1/sms_reset', [TwilioController::class, 'generate2faResetCode'])->name('sms_reset.generate')->middleware('throttle:3,1');
|
||||||
Route::post('api/v1/sms_reset/confirm', [TwilioController::class, 'confirm2faResetCode'])->name('sms_reset.confirm')->middleware('throttle:20,1');
|
Route::post('api/v1/sms_reset/confirm', [TwilioController::class, 'confirm2faResetCode'])->name('sms_reset.confirm')->middleware('throttle:3,1');
|
||||||
|
|
||||||
Route::match(['get', 'post'], 'payment_webhook/{company_key}/{company_gateway_id}', PaymentWebhookController::class)
|
Route::match(['get', 'post'], 'payment_webhook/{company_key}/{company_gateway_id}', PaymentWebhookController::class)
|
||||||
->middleware('throttle:1000,1')
|
->middleware('throttle:1000,1')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user