initUserSession method

Future<UserSession?> initUserSession({
  1. required String clientID,
  2. required DioClient microsoftDioClient,
  3. required AuthEndpointsData authEndpointsData,
  4. Options? getUserDetailsOptions,
})

Implementation

Future<UserSession?> initUserSession({
  required String clientID,
  required DioClient microsoftDioClient,
  required AuthEndpointsData authEndpointsData,
  Options? getUserDetailsOptions,
}) async {
  final AuthCredentials? authCredentials = await _authProvider.securedStorage
      .getAuthCredentials();

  return authCredentials?.loginCredentials?.map(
    oauth: (credentials) async {
      final String? refreshToken = await _authProvider.securedStorage
          .getRefreshToken();

      if (refreshToken != null) {
        return await authenticate(
          clientID: clientID,
          microsoftDioClient: microsoftDioClient,
          authEndpointsData: authEndpointsData,
          getUserDetailsOptions: getUserDetailsOptions,
        );
      } else {
        return null;
      }
    },
  );
}