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();
|
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 = const AsyncLoading();
|
||||||
state = await AsyncValue.guard(
|
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);
|
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(
|
final response = await _api.post(
|
||||||
'/auth/login',
|
'/auth/login',
|
||||||
jsonEncode({'email': email, 'password': password}),
|
jsonEncode({'username': username, 'password': password}),
|
||||||
);
|
);
|
||||||
if (response.statusCode != 200 && response.statusCode != 201) {
|
if (response.statusCode != 200 && response.statusCode != 201) {
|
||||||
throw Exception('Login failed: ${response.statusCode}');
|
throw Exception('Login failed: ${response.statusCode}');
|
||||||
}
|
}
|
||||||
final data = jsonDecode(response.body) as Map<String, dynamic>;
|
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);
|
await _storage.saveToken(token);
|
||||||
return token;
|
return token;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,19 +11,19 @@ class LoginScreen extends ConsumerStatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _LoginScreenState extends ConsumerState<LoginScreen> {
|
class _LoginScreenState extends ConsumerState<LoginScreen> {
|
||||||
final _emailCtrl = TextEditingController();
|
final _usernameCtrl = TextEditingController();
|
||||||
final _passwordCtrl = TextEditingController();
|
final _passwordCtrl = TextEditingController();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
_emailCtrl.dispose();
|
_usernameCtrl.dispose();
|
||||||
_passwordCtrl.dispose();
|
_passwordCtrl.dispose();
|
||||||
super.dispose();
|
super.dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _submit() async {
|
Future<void> _submit() async {
|
||||||
await ref.read(authStateProvider.notifier).login(
|
await ref.read(authStateProvider.notifier).login(
|
||||||
_emailCtrl.text.trim(),
|
_usernameCtrl.text.trim(),
|
||||||
_passwordCtrl.text,
|
_passwordCtrl.text,
|
||||||
);
|
);
|
||||||
if (mounted) {
|
if (mounted) {
|
||||||
@@ -45,9 +45,8 @@ class _LoginScreenState extends ConsumerState<LoginScreen> {
|
|||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
TextField(
|
TextField(
|
||||||
controller: _emailCtrl,
|
controller: _usernameCtrl,
|
||||||
decoration: const InputDecoration(labelText: 'E-post'),
|
decoration: const InputDecoration(labelText: 'Anvandarnamn'),
|
||||||
keyboardType: TextInputType.emailAddress,
|
|
||||||
),
|
),
|
||||||
const SizedBox(height: 12),
|
const SizedBox(height: 12),
|
||||||
TextField(
|
TextField(
|
||||||
|
|||||||
Reference in New Issue
Block a user