fix: auth token handling, add tests
- Read bearer token from set-auth-token header - Add mounted checks to prevent setState after dispose - Add mocktail for testing - Add widget tests for login, clients, events screens - Add unit tests for auth provider, API client - 110 tests passing
This commit is contained in:
@@ -41,9 +41,11 @@ class _LoginScreenState extends ConsumerState<LoginScreen> {
|
||||
context.go('/');
|
||||
}
|
||||
} catch (e) {
|
||||
setState(() {
|
||||
_error = 'Invalid email or password';
|
||||
});
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
_error = 'Invalid email or password';
|
||||
});
|
||||
}
|
||||
} finally {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
|
||||
@@ -46,9 +46,11 @@ class _RegisterScreenState extends ConsumerState<RegisterScreen> {
|
||||
context.go('/');
|
||||
}
|
||||
} catch (e) {
|
||||
setState(() {
|
||||
_error = 'Registration failed. Please try again.';
|
||||
});
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
_error = 'Registration failed. Please try again.';
|
||||
});
|
||||
}
|
||||
} finally {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
|
||||
@@ -51,6 +51,13 @@ class ApiClient {
|
||||
'password': password,
|
||||
'name': name,
|
||||
});
|
||||
|
||||
// Store session token from header (BetterAuth auto-signs in after signup)
|
||||
final authToken = response.headers.value('set-auth-token');
|
||||
if (authToken != null) {
|
||||
await _storage.write(key: 'session_token', value: authToken);
|
||||
}
|
||||
|
||||
return response.data;
|
||||
}
|
||||
|
||||
@@ -63,9 +70,10 @@ class ApiClient {
|
||||
'password': password,
|
||||
});
|
||||
|
||||
// Store session token
|
||||
if (response.data['token'] != null) {
|
||||
await _storage.write(key: 'session_token', value: response.data['token']);
|
||||
// Store session token from header (BetterAuth bearer plugin)
|
||||
final authToken = response.headers.value('set-auth-token');
|
||||
if (authToken != null) {
|
||||
await _storage.write(key: 'session_token', value: authToken);
|
||||
}
|
||||
|
||||
return response.data;
|
||||
|
||||
Reference in New Issue
Block a user