Skip to content

Commit

Permalink
feat: fix dio bug and add interceptors for dev (#352)
Browse files Browse the repository at this point in the history
  • Loading branch information
Nirajn2311 authored May 13, 2022
1 parent 8ca1be0 commit 000bff4
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 4 deletions.
15 changes: 11 additions & 4 deletions mobile-app/lib/service/authentication_service.dart
Original file line number Diff line number Diff line change
@@ -1,21 +1,22 @@
import 'dart:convert';
import 'dart:developer';

import 'package:curl_logger_dio_interceptor/curl_logger_dio_interceptor.dart';
import 'package:dio/dio.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';
import 'package:freecodecamp/models/main/user_model.dart';
import 'package:pretty_dio_logger/pretty_dio_logger.dart';

class AuthenticationService {
static final AuthenticationService _authenticationService =
AuthenticationService._internal();
final FlutterSecureStorage secureStorage = const FlutterSecureStorage();
final browser = FlutterWebviewPlugin();
bool isLoggedIn = false;
String _csrf = '';
String _csrfToken = '';
String _jwtAccessToken = '';
Dio dio = Dio();
final Dio _dio = Dio();

FccUserModel? userModel;

Expand All @@ -24,6 +25,11 @@ class AuthenticationService {
}

Future<void> init() async {
_dio.options.baseUrl = 'https://api.freecodecamp.dev';
// Below two interceptors are for debugging purposes only
// They will be put behind a devMode flag later
_dio.interceptors.add(PrettyDioLogger(responseBody: false));
_dio.interceptors.add(CurlLoggerDioInterceptor());
if ((await secureStorage.containsKey(key: 'jwt_access_token')) == true &&
(await secureStorage.containsKey(key: 'csrf_token')) == true &&
(await secureStorage.containsKey(key: 'csrf')) == true) {
Expand All @@ -33,14 +39,14 @@ class AuthenticationService {
isLoggedIn = true;
fetchUser();
}
dio.options.baseUrl = 'https://api.freecodecamp.dev';
}

void setFccUserModel(Map<String, dynamic> data) {
userModel = FccUserModel.fromJson(data);
}

Future<void> login() async {
final browser = FlutterWebviewPlugin();
browser.onUrlChanged.listen((String url) async {
log('onUrlChanged: $url');
if (url ==
Expand All @@ -57,6 +63,7 @@ class AuthenticationService {
log('LOGGED IN');
browser.close();
fetchUser();
browser.dispose();
}
});
browser.launch(
Expand All @@ -81,7 +88,7 @@ class AuthenticationService {
}

Future<Map<String, dynamic>> fetchUser() async {
Response res = await dio.get(
Response res = await _dio.get(
'/user/get-session-user',
options: Options(
headers: {
Expand Down
14 changes: 14 additions & 0 deletions mobile-app/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.4"
curl_logger_dio_interceptor:
dependency: "direct main"
description:
name: curl_logger_dio_interceptor
url: "https://pub.dartlang.org"
source: hosted
version: "0.0.3"
dart_jsonwebtoken:
dependency: "direct main"
description:
Expand Down Expand Up @@ -898,6 +905,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.5.0"
pretty_dio_logger:
dependency: "direct main"
description:
name: pretty_dio_logger
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0-beta-1"
process:
dependency: transitive
description:
Expand Down
2 changes: 2 additions & 0 deletions mobile-app/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ dependencies:
photo_view: ^0.13.0
share_plus: ^4.0.0
flutter_highlight: ^0.7.0
pretty_dio_logger: ^1.2.0-beta-1
curl_logger_dio_interceptor: ^0.0.3
dev_dependencies:
build_runner: ^2.1.2
integration_test:
Expand Down

0 comments on commit 000bff4

Please sign in to comment.