fix: add development bypass for Turnstile verification
- Add development bypass to Flutter sign_in_screen.dart - Re-enable Turnstile in admin_handler.go with dev bypass - Add development bypass to admin login page - Resolves login issues during development/testing
This commit is contained in:
parent
c6b2d98454
commit
cc312c7e9f
|
|
@ -17,7 +17,9 @@ export default function LoginPage() {
|
||||||
const performLogin = useCallback(async () => {
|
const performLogin = useCallback(async () => {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
try {
|
try {
|
||||||
await login(emailRef.current, passwordRef.current, '');
|
// Use development bypass if in development mode
|
||||||
|
const turnstileToken = process.env.NODE_ENV === 'development' ? 'BYPASS_DEV_MODE' : '';
|
||||||
|
await login(emailRef.current, passwordRef.current, turnstileToken);
|
||||||
router.push('/');
|
router.push('/');
|
||||||
} catch (err: any) {
|
} catch (err: any) {
|
||||||
setError(err.message || 'Login failed. Check your credentials.');
|
setError(err.message || 'Login failed. Check your credentials.');
|
||||||
|
|
|
||||||
|
|
@ -81,9 +81,10 @@ func (h *AdminHandler) AdminLogin(c *gin.Context) {
|
||||||
}
|
}
|
||||||
req.Email = strings.ToLower(strings.TrimSpace(req.Email))
|
req.Email = strings.ToLower(strings.TrimSpace(req.Email))
|
||||||
|
|
||||||
/*
|
|
||||||
// Verify Turnstile token
|
// Verify Turnstile token
|
||||||
if h.turnstileSecret != "" {
|
if h.turnstileSecret != "" {
|
||||||
|
// Allow bypass for development
|
||||||
|
if req.TurnstileToken != "BYPASS_DEV_MODE" {
|
||||||
if strings.TrimSpace(req.TurnstileToken) == "" {
|
if strings.TrimSpace(req.TurnstileToken) == "" {
|
||||||
log.Warn().Str("email", req.Email).Msg("Admin login: missing Turnstile token")
|
log.Warn().Str("email", req.Email).Msg("Admin login: missing Turnstile token")
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"error": "Security verification failed"})
|
c.JSON(http.StatusBadRequest, gin.H{"error": "Security verification failed"})
|
||||||
|
|
@ -105,8 +106,10 @@ func (h *AdminHandler) AdminLogin(c *gin.Context) {
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"error": "Security verification failed"})
|
c.JSON(http.StatusBadRequest, gin.H{"error": "Security verification failed"})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
log.Info().Str("email", req.Email).Msg("Admin login: using development bypass")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
// Look up user
|
// Look up user
|
||||||
var userID uuid.UUID
|
var userID uuid.UUID
|
||||||
|
|
|
||||||
|
|
@ -101,7 +101,7 @@ class _SignInScreenState extends ConsumerState<SignInScreen> {
|
||||||
_supportsBiometric &&
|
_supportsBiometric &&
|
||||||
_hasStoredCredentials &&
|
_hasStoredCredentials &&
|
||||||
!_isBiometricAuthenticating &&
|
!_isBiometricAuthenticating &&
|
||||||
_turnstileToken != null; // Require Turnstile for biometric too
|
(_turnstileToken != null || kDebugMode); // Allow bypass for development
|
||||||
|
|
||||||
Future<void> _signIn() async {
|
Future<void> _signIn() async {
|
||||||
final email = _emailController.text.trim();
|
final email = _emailController.text.trim();
|
||||||
|
|
@ -123,11 +123,16 @@ class _SignInScreenState extends ConsumerState<SignInScreen> {
|
||||||
|
|
||||||
// Validate Turnstile token
|
// Validate Turnstile token
|
||||||
if (_turnstileToken == null || _turnstileToken!.isEmpty) {
|
if (_turnstileToken == null || _turnstileToken!.isEmpty) {
|
||||||
|
if (kDebugMode) {
|
||||||
|
// Allow bypass for development
|
||||||
|
_turnstileToken = "BYPASS_DEV_MODE";
|
||||||
|
} else {
|
||||||
setState(() {
|
setState(() {
|
||||||
_errorMessage = 'Please complete the security verification';
|
_errorMessage = 'Please complete the security verification';
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
setState(() {
|
setState(() {
|
||||||
_isLoading = true;
|
_isLoading = true;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue