【问题标题】:Amplify Auth Exception放大认证异常
【发布时间】:2021-11-02 18:17:54
【问题描述】:

我一直在尝试配置放大,但它不断带来身份验证异常。

这是我的主页

class AppWidget extends StatefulWidget {
  const AppWidget({Key? key}) : super(key: key);

  @override
  State<AppWidget> createState() => _AppWidgetState();
}

class _AppWidgetState extends State<AppWidget> {
  @override
  void initState() {
    super.initState();
    _configureAmplify();
  }

  @override
  Widget build(BuildContext context) {
    final appRouter = AppRouter();
    return MultiRepositoryProvider(
      providers: [
        RepositoryProvider(
          create: (context) => AuthRepository(),
        ),
      ],
      child: MultiBlocProvider(
        providers: [
          BlocProvider(
              create: (context) => AuthBloc(context.read<AuthRepository>())
                ..add(const AuthEvent.authCheckRequested())),
        ],
        child: MaterialApp.router(
          title: 'Flutter Demo',
          theme: ThemeData(
            primarySwatch: Colors.blue,
          ),
          routerDelegate: appRouter.delegate(),
          routeInformationParser: appRouter.defaultRouteParser(),
        ),
      ),
    );
  }

  Future<void> _configureAmplify() async {
    Amplify.addPlugins([
      AmplifyAuthCognito(),
      AmplifyDataStore(modelProvider: ModelProvider.instance),
      AmplifyAPI(),
      AmplifyStorageS3(),
      AmplifyAnalyticsPinpoint(),
    ]);
    try {
      await Amplify.configure(amplifyconfig);
    } catch (e) {
      //Todo!!: change from log later
      print(
          "Tried to reconfigure Amplify; this can occur when your app restarts on Android.");
    }
  }
}

我的身份验证块

class AuthBloc extends Bloc<AuthEvent, AuthState> {
  final AuthRepository _authrepository;
  AuthBloc(this._authrepository) : super(const AuthState.initial()) {
    // on<AuthEvent>((_onEvent);
    on<AuthEvent>((event, emit) {
      event.map(
        authCheckRequested: (e) async {
          final userOption = await _authrepository.user;
          emit(userOption.fold(
            () => const AuthState.unauthenticated(),
            (_) => const AuthState.authenticated(),
          ));
        },
        signedOut: (e) async {
          await _authrepository.logOut();
          emit(const AuthState.unauthenticated());
        },
      );
    });
  }
}

错误:

E/flutter ( 2805): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: AmplifyException(message: Auth plugin has not been added to Amplify, recoverySuggestion: Add Auth plugin to Amplify and call configure before calling Auth related APIs, underlyingException: null)
E/flutter ( 2805): #0      AuthCategory.getCurrentUser
package:amplify_flutter/categories/amplify_auth_category.dart:196
E/flutter ( 2805): #1      AuthRepository.user
package:aws_test/…/infrastructure/auth_repository.dart:10
E/flutter ( 2805): #2      new AuthBloc.<anonymous closure>.<anonymous closure>
package:aws_test/…/auth_bloc/auth_bloc.dart:16
E/flutter ( 2805): #3      new AuthBloc.<anonymous closure>.<anonymous closure>
package:aws_test/…/auth_bloc/auth_bloc.dart:15
E/flutter ( 2805): #4      _$_AuthCheckRequested.map
package:aws_test/…/auth_bloc/auth_bloc.freezed.dart:163
E/flutter ( 2805): #5      new AuthBloc.<anonymous closure>
package:aws_test/…/auth_bloc/auth_bloc.dart:14

n.b: 忽略最后几句 他发誓他只是看到他的寿司动了。 他们很高兴看到他们的第一个树懒。 每当他在海滩上看到红旗警告时,他都会抓起冲浪板。 他们扔卷心菜,把你的大脑变成情感包袱。 三块球形岩石聚集在一个立方体的房间里。 一个安静的房子是不错的,直到你被命令在里面呆几个月。

【问题讨论】:

    标签: amazon-web-services flutter dart aws-amplify


    【解决方案1】:

    看起来您需要向项目添加身份验证服务。这是通过运行amplify add auth 然后在项目目录中,通过控制台提示,然后运行amplify push 来完成的。 https://docs.amplify.aws/lib/auth/getting-started/q/platform/flutter/#summary

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-21
      • 2015-10-15
      • 2012-09-25
      • 1970-01-01
      • 1970-01-01
      • 2022-07-12
      • 2022-07-18
      • 2018-04-21
      相关资源
      最近更新 更多