getJwtFromBackend static method

Future<void> getJwtFromBackend(
  1. String username,
  2. String idpName,
  3. String tenant,
  4. String refreshToken,
  5. String deviceId,
  6. BuildContext context,
)

Implementation

static Future<void> getJwtFromBackend(
    String username,
    String idpName,
    String tenant,
    String refreshToken,
    String deviceId,
    BuildContext context) async {
  try {
    final model = AudModel(
        username: username,
        idpname_backend: idpName,
        tenant: tenant,
        refreshToken: refreshToken,
        deviceId: deviceId);
    final response = await dio2.post(
      '${Configuration.AuthUrl}/aud',
      data: model.toJson(),
      options: Options(
        extra: {'_database_name': tenant}, // Set in request options
      ),
    );

    if (response.statusCode == 200) {
      final responseData = AuthTokenModel.fromJson(response.data);
      final FlutterSecureStorage secureStorage = FlutterSecureStorage();
      await secureStorage.write(key: "JWT_Token", value: responseData.token);
      await secureStorage.write(
          key: "Refresh_Token", value: responseData.refreshToken);
      await secureStorage.write(key: "Username", value: username);
      context.goNamed('/');
    } else {
      print('Backend error: ${response.statusCode} ${response.data}');
    }
  } catch (e) {
    print('Error sending tokens to backend: $e');
    if (e is DioError) {
      print('Request data: ${e.requestOptions.data}');
      print('Response data: ${e.response?.data}');
    }
  }
}