forked from baron/baron-sso
fix userfront verify link routing
This commit is contained in:
@@ -16,6 +16,7 @@ import 'features/auth/presentation/forgot_password_screen.dart';
|
||||
import 'features/auth/presentation/reset_password_screen.dart';
|
||||
import 'features/auth/presentation/error_screen.dart';
|
||||
import 'features/auth/domain/login_link_route_policy.dart';
|
||||
import 'features/auth/domain/verification_completion_route.dart';
|
||||
import 'features/dashboard/presentation/dashboard_screen.dart';
|
||||
import 'features/admin/presentation/user_management_screen.dart';
|
||||
import 'features/profile/presentation/pages/profile_page.dart';
|
||||
@@ -154,10 +155,19 @@ Future<void> _silentSessionRecovery() async {
|
||||
|
||||
bool _shouldRunStartupSessionRecovery(Uri uri) {
|
||||
final requestedLocale = extractLocaleFromPath(uri);
|
||||
final path = stripLocalePath(uri);
|
||||
final verificationPayloadRedirect = buildDedicatedVerificationRedirect(
|
||||
uri,
|
||||
localeCode: requestedLocale ?? resolvePreferredLocaleCode(),
|
||||
);
|
||||
if (verificationPayloadRedirect != null ||
|
||||
isDedicatedVerificationRoute(uri) ||
|
||||
path == verificationCompletionRoutePath) {
|
||||
return false;
|
||||
}
|
||||
if (requestedLocale == null) {
|
||||
return true;
|
||||
}
|
||||
final path = stripLocalePath(uri);
|
||||
return !isPublicAuthPath(path, uri);
|
||||
}
|
||||
|
||||
@@ -283,6 +293,18 @@ final _router = GoRouter(
|
||||
);
|
||||
},
|
||||
),
|
||||
GoRoute(
|
||||
path: verificationCompletionRouteName,
|
||||
builder: (context, state) {
|
||||
return ScopedTheme(
|
||||
controller: ThemeController.auth,
|
||||
child: LoginScreen(
|
||||
key: state.pageKey,
|
||||
verificationCompleteOnly: true,
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
GoRoute(
|
||||
path: 'login',
|
||||
builder: (context, state) {
|
||||
@@ -482,6 +504,13 @@ final _router = GoRouter(
|
||||
final uri = state.uri;
|
||||
final requestedLocale = extractLocaleFromPath(uri);
|
||||
final preferredLocale = resolvePreferredLocaleCode();
|
||||
final verificationPayloadRedirect = buildDedicatedVerificationRedirect(
|
||||
uri,
|
||||
localeCode: requestedLocale ?? preferredLocale,
|
||||
);
|
||||
if (verificationPayloadRedirect != null) {
|
||||
return verificationPayloadRedirect;
|
||||
}
|
||||
|
||||
if (requestedLocale == null) {
|
||||
final localizedPath = buildLocalizedPath(preferredLocale, uri);
|
||||
|
||||
Reference in New Issue
Block a user