laravel-localization
laravel-localization copied to clipboard
Signed URL in notification not working with localized route
Describe the bug When i use signed url on localized url in notification, it's doesn't work.
To Reproduce
Route::group([
'prefix' => \Mcamara\LaravelLocalization\Facades\LaravelLocalization::setLocale(),
'middleware' => ['localeSessionRedirect'],
], static function () {
Route::get('test', function() {
return "test";
})
->middleware('signed')
->name('test');
});
URL::signedRoute('test');
works in view but not in notification when called in toArray method.
Expected behavior The toRoute method called in signedURL return the uri without the locale.
More info:
- Laravel 7.25
- Laravel-localization 1.5.0
Thanks for any help :D
Having the same issue. @YannikFirre did you find a solution?
Hello,
No, finally, my route did not need to be localized.
Sorry :/
Same problem for us, if we generate a signed route and we visit it without the language code is working, if we add the language code to url we receive a 401 error.
Same issue here. If it's a queued notification that contains a signedRoute, the route in the email is generated is without the locale en therefore invalid as the server auto redirects it to the currentLocale.
I have the same problem with the verify route and queued mail. One solution it`s custom logic for UrlGenerator::temporarySignedRoute
I fixed it puting LaravelLocalization::setLocale() before to use URL::signedRoute
just add the path of route to ignored array in laravellocalization.php config file
'urlsIgnored' => ['/skipped', '/backend/email/verify/*'],