amazon-web-services - 放大认证异常
问题描述
我一直在尝试配置放大,它不断带来身份验证异常。
这是我的主页
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
注意:忽略他发誓他刚刚看到他的寿司移动的最后一句话。他们很高兴看到他们的第一个树懒。每当他在海滩上看到红旗警告时,他都会抓起冲浪板。他们扔卷心菜,把你的大脑变成情感包袱。三块球形岩石聚集在一个立方体的房间里。一个安静的房子是不错的,直到你被命令在里面呆几个月。
解决方案
看起来您需要向项目添加身份验证服务。这是通过amplify add auth
在项目目录中运行 then 来完成的,通过控制台提示,然后运行amplify push
.
https://docs.amplify.aws/lib/auth/getting-started/q/platform/flutter/#summary
推荐阅读
- c - 在子功能中使用 openmp 提高性能
- c# - 敌人射击自己 - Unity C#
- python - 查找矩阵单位根的(部分)列表
- python - 如何根据条件在列的特定范围行中插入值。熊猫
- php - Laravel 8 - 渴望加载不一致的行为
- arrays - 使数组不递减的最小操作数
- android - Android:实时 Firebase 规则
- java - 我想在最后一行打印 ainput,它应该与答案 JAVA ARRAY 形成一个总和解决方案
- azure - AKS 1.22.2 群集入口配置不适用于 Azure 应用程序网关
- yocto - Yocto:依赖于收据和 PACKAGECONFIG