![](/img/trans.png)
[英]Laravel API Endpoint "401 Unauthorized" on Server But Works Fine On Localhost
[英]401 unauthorized error in Flutter but works fine in Postman
我有 Laravel 端點。 登錄、注冊和主頁(getData() 將在其中工作)。
寄存器 API 和登錄 API 工作正常,但問題出在主頁 API 上,它不會詢問用戶詳細信息,這是一個獲取方法,它會在檢查用戶是否登錄時返回詳細信息。
var token;
_getKey() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
token = prefs.getString('key');
print("this is Key $token");
}
saveKey(String key) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString('key', key);
}
getData() async {
await _getCSRF();
await _getKey();
print(_setAuthHeaders());
String uri = "$baseUrlUser/user_bal";
try {
return await http.get(Uri.parse(uri), headers: _setAuthHeaders());
} catch (e) {
return e;
}
}
_setAuthHeaders() => {
'Accept': 'application/json',
'Connection': 'keep-alive',
'Authorization': 'Bearer $token',
};
請幫忙。
請傳遞令牌為
'Authorization': 'Bearer $token;',
_setAuthHeaders() => {
'Accept': 'application/json',
'Connection': 'keep-alive',
'Authorization': 'Bearer $token',
};
http
庫會自動將 header 名稱轉換為小寫,可能您的服務器不接受小寫 header 名稱。 請按照以下步驟操作:
io_client.dart
io_client.dart
(第 40 行)中找到此代碼request.headers.forEach((name, value) {
ioRequest.headers.set(name, value);
});
preserveHeaderCase: true
request.headers.forEach((name, value) {
ioRequest.headers.set(name, value,preserveHeaderCase:true);
});
如果您正在制作 flutter web 項目,請在檢查 >> 控制台檢查,拒絕設置不安全 header“內容長度”是否正在打印。 如果它發生了,那么在你的代碼中你有 api 設置
class ApiServiceProvider extends GetConnect {}
@override
void onInit() {
if (kIsWeb) {
httpClient.addRequestModifier<void>((request) {
request.headers.remove('user-agent');
request.headers.remove('content-length');
return request;
});
}
super.onInit();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.