fix: update login functionality to use username instead of email
This commit is contained in:
@@ -20,10 +20,10 @@ class AuthNotifier extends AsyncNotifier<String?> {
|
||||
return ref.watch(authRepositoryProvider).getToken();
|
||||
}
|
||||
|
||||
Future<void> login(String email, String password) async {
|
||||
Future<void> login(String username, String password) async {
|
||||
state = const AsyncLoading();
|
||||
state = await AsyncValue.guard(
|
||||
() => ref.read(authRepositoryProvider).login(email, password),
|
||||
() => ref.read(authRepositoryProvider).login(username, password),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -8,16 +8,16 @@ class AuthRepository {
|
||||
|
||||
AuthRepository(this._api, this._storage);
|
||||
|
||||
Future<String> login(String email, String password) async {
|
||||
Future<String> login(String username, String password) async {
|
||||
final response = await _api.post(
|
||||
'/auth/login',
|
||||
jsonEncode({'email': email, 'password': password}),
|
||||
jsonEncode({'username': username, 'password': password}),
|
||||
);
|
||||
if (response.statusCode != 200 && response.statusCode != 201) {
|
||||
throw Exception('Login failed: ${response.statusCode}');
|
||||
}
|
||||
final data = jsonDecode(response.body) as Map<String, dynamic>;
|
||||
final token = data['access_token'] as String;
|
||||
final token = data['accessToken'] as String;
|
||||
await _storage.saveToken(token);
|
||||
return token;
|
||||
}
|
||||
|
||||
@@ -11,19 +11,19 @@ class LoginScreen extends ConsumerStatefulWidget {
|
||||
}
|
||||
|
||||
class _LoginScreenState extends ConsumerState<LoginScreen> {
|
||||
final _emailCtrl = TextEditingController();
|
||||
final _usernameCtrl = TextEditingController();
|
||||
final _passwordCtrl = TextEditingController();
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_emailCtrl.dispose();
|
||||
_usernameCtrl.dispose();
|
||||
_passwordCtrl.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
Future<void> _submit() async {
|
||||
await ref.read(authStateProvider.notifier).login(
|
||||
_emailCtrl.text.trim(),
|
||||
_usernameCtrl.text.trim(),
|
||||
_passwordCtrl.text,
|
||||
);
|
||||
if (mounted) {
|
||||
@@ -45,9 +45,8 @@ class _LoginScreenState extends ConsumerState<LoginScreen> {
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
TextField(
|
||||
controller: _emailCtrl,
|
||||
decoration: const InputDecoration(labelText: 'E-post'),
|
||||
keyboardType: TextInputType.emailAddress,
|
||||
controller: _usernameCtrl,
|
||||
decoration: const InputDecoration(labelText: 'Anvandarnamn'),
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
TextField(
|
||||
|
||||
Reference in New Issue
Block a user