Skip to content

Commit

Permalink
fix(#58): inicio do refresh token
Browse files Browse the repository at this point in the history
Co-authored-by: Yasm1nNasc1mento <[email protected]>
  • Loading branch information
GabrielCostaDeOliveira and Yasm1nNasc1mento committed Dec 15, 2024
1 parent c6d4091 commit 9cc1908
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 49 deletions.
2 changes: 1 addition & 1 deletion lib/core/network/AppInterceptors.dart
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@ class AppInterceptors extends Interceptor {

if ( token != null) {
options.headers['Authorization'] = 'Bearer $token';
Log.e(token);
}

handler.next(options);


} catch (e) {
Log.e(e);
rethrow;
}
}
}
44 changes: 25 additions & 19 deletions lib/ui/login/service/LoginService.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,37 +6,43 @@ import 'package:aranduapp/ui/login/model/LoginResponse.dart';
import 'package:dio/dio.dart';

class LoginService {

static Future<Response> login(LoginRequest loginRequest) async {

Log.d('${loginRequest.email} ${loginRequest.password}');

Response response = await BaseApi.getInstance().post(
path: '/auth/login',
data: <String, dynamic> {
'email' : loginRequest.email,
'password': loginRequest.password
}
);

LoginResponse loginResponse = LoginResponse.fromJsonString(response.toString());
path: '/auth/login',
data: <String, dynamic>{
'email': loginRequest.email,
'password': loginRequest.password
});

assert(loginResponse.authToken != null && loginResponse.refreshToken != null);
LoginResponse loginResponse =
LoginResponse.fromJsonString(response.toString());

await StorageValue.getInstance().setAuthToken(loginResponse.authToken ?? '');
await StorageValue.getInstance().setAuthToken(loginResponse.refreshToken??'');
assert(
loginResponse.authToken != null && loginResponse.refreshToken != null);

await StorageValue.getInstance()
.setAuthToken(loginResponse.authToken ?? '');
await StorageValue.getInstance()
.setAuthToken(loginResponse.refreshToken ?? '');

return response;

}

static Future<LoginRequest> refreshToken() async {
// TODO: implement build
throw UnimplementedError();
static Future<void> refreshToken() async {
Log.d('init reresh token');

}
await BaseApi.getInstance().post(path: '/auth/validate-token');

}
String? refresh = await StorageValue.getInstance().getRefreshToken();

assert(refresh != null);

await BaseApi.getInstance().post(
path: '/auth/refresh',
data: <String, dynamic>{'refreshToken': refresh});

Log.d('finish reresh token');
}
}
45 changes: 16 additions & 29 deletions lib/ui/login/viewModel/LoginViewModel.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@

import 'package:aranduapp/core/log/Log.dart';
import 'package:flutter/material.dart';
import 'package:local_auth/local_auth.dart';
import 'package:aranduapp/ui/login/service/LoginService.dart';
Expand All @@ -7,27 +7,23 @@ import 'package:aranduapp/ui/login/model/LoginRequest.dart';
import 'package:aranduapp/ui/home/view/HomeView.dart';

class LoginViewModel extends ChangeNotifier {

final BuildContext context;

bool isLoading;

final GlobalKey<FormState> formKey;
final TextEditingController emailController;
final TextEditingController passwordController;

LoginViewModel(this.context) :
isLoading = false,
formKey = GlobalKey<FormState>(),
emailController = TextEditingController(),
passwordController = TextEditingController();
LoginViewModel(this.context)
: isLoading = false,
formKey = GlobalKey<FormState>(),
emailController = TextEditingController(),
passwordController = TextEditingController();



Future<void> loginWithEmailAndPassword() async {

// TODO use mutex to make this
if (isLoading){
if (isLoading) {
return;
}

Expand All @@ -39,8 +35,8 @@ class LoginViewModel extends ChangeNotifier {
throw Exception('Valores inválidos');
}

await LoginService.login(LoginRequest(emailController.text, passwordController.text));

await LoginService.login(
LoginRequest(emailController.text, passwordController.text));
} catch (e) {
rethrow;
} finally {
Expand All @@ -50,21 +46,12 @@ class LoginViewModel extends ChangeNotifier {
}

Future<void> getRefreshTokenFuture() async {
// TODO
//return await LoginService.refreshToken();
throw UnimplementedError();
await LoginService.refreshToken();
}

Future<void> loginWithDeviceAuth() async {
bool value = await LocalAuthentication().authenticate(
localizedReason: 'Toque com o dedo no sensor para logar');

if (!value)
throw Exception();

}



Future<bool> loginWithDeviceAuth() async {
Log.d('init loginWithDeviceAuth');
return await LocalAuthentication()
.authenticate(localizedReason: 'Toque com o dedo no sensor para logar');
}
}

0 comments on commit 9cc1908

Please sign in to comment.