我正在使用flutter_bloc(https://felangel.github.io/bloc/#/gettingstarted)包,这个包非常棒。目前,我有一个认证bloc,在用户登录时保存访问令牌。
在我的许多HTTP请求中,我需要将访问令牌发送到后端。
我正在创建一个可重用的函数,以处理所有需要发送访问令牌的受保护HTTP请求。这样可以重复使用,因此我不必从UI层传递访问令牌到API层。然而,我不确定如何从这个函数中访问Auth Bloc,因为它不在widget tree中。
当我进行HTTP请求时,数据流如下(基于felangel的flutter bloc教程):
在我的许多HTTP请求中,我需要将访问令牌发送到后端。
我正在创建一个可重用的函数,以处理所有需要发送访问令牌的受保护HTTP请求。这样可以重复使用,因此我不必从UI层传递访问令牌到API层。然而,我不确定如何从这个函数中访问Auth Bloc,因为它不在widget tree中。
当我进行HTTP请求时,数据流如下(基于felangel的flutter bloc教程):
UI -> bloc -> repository -> api
and then:
api -> repository -> bloc -> UI
我在应用程序顶部附近有一个BlocProvider来提供AuthBloc,代码如下:
return BlocProvider(
builder: (BuildContext context) =>
AuthBloc(authRepository: authRepository),
child: Scaffold(
...
这是我用于受保护请求的可重复使用函数。我需要在此函数中访问Auth Bloc,但我不完全确定如何操作。
Future<dynamic> protectedRequest(
{accessToken, endpoint, dynamic body}) async {
final uri = Uri.https(baseUrl, endpoint);
final response = await http.post(uri,
body: body, headers: {'Authorization': 'Bearer ' + accessToken});
if (response.statusCode == 200 || response.statusCode == 201) {
return response;
} else {
throw Exception();
}
}
谢谢你