面对使用JWT令牌的Flutter REST API中的一些问题



我在使用JWT令牌的Flutter REST API中面临一些问题

这里报头认证没有正确通过。但它在Postman

中运行良好
**Example Code:**
String url = "project URL";
String token = "generated jwt token";
var headers = {
'Authorization': token,
'Cookie': 'ci_session=u17u9effeqk5fdhl1eqdh4jsmu3o3v29'
};
var request = http.Request('GET', Uri.parse(url));
request.headers.addAll(headers);
http.StreamedResponse response = await request.send();
if (response.statusCode == 200) {
print(await response.stream.bytesToString());
}
else {
print(response.reasonPhrase);
}

如果我尝试通过在后端删除JWT令牌而不使用它,它会正常工作。但是我需要使用JWT。

谁能帮忙解决这个问题?

我使用dio包来处理相同的…

// Import dio package
Future<void> function() async {
Dio dio = new Dio();
String url = 'example.com';

try {
final response = await dio.post(
url,
options: Options(
headers: {'Authorization': 'Bearer $userToken'}, //This is where you define your header and provide jwt token
),
);
} on DioError catch (error) {
if (error.response!.statusCode == 401) {
print(error.response.toString());
throw Error();
}
print(error);
throw Error();
}
}
}

这个包可以在这里找到https://pub.dev/packages/dio

如有疑问,请指正

这里最有可能的问题是您在头文件中给出的值。

对于承载令牌,授权头中给出的值必须是Bearer,后跟令牌的值。如果你没有在你的后端实现一些特定的/自制的授权功能,这必须是期望接收到的。

尝试用

替换'Authorization': token,
'Authorization': `Bearer $token`,

,它应该按预期工作。

最新更新