如何在 Flutter 移动应用程序的 API 调用中传递基本身份验证凭据?

     2023-02-23     34

关键词:

【中文标题】如何在 Flutter 移动应用程序的 API 调用中传递基本身份验证凭据?【英文标题】:How to pass basic auth credentials in API call for a Flutter mobile application? 【发布时间】:2018-10-19 01:02:09 【问题描述】:

我正在开发一个简单的 Flutter 移动应用,该应用需要调用使用基本身份验证的 API。

我可以使用电子邮件和密码凭据在 Postman 中访问 API,它会在执行请求之前以 Base64 对电子邮件和密码进行编码(我假设用“:”分隔)。

我不确定如何在 Flutter / Dart 中执行此操作...

我已经修改了 http 包并尝试进行 Base64 编码...但我只是从服务器返回错误。

任何人都可以为基本身份验证请求提供一些指导或示例吗?

【问题讨论】:

【参考方案1】:

假设您的服务器期望 username:password 组合将其编码为 UTF-8(有关更多详细信息,请参阅 RFC 7617)然后使用:

import 'dart:convert';
    
import 'package:http/http.dart';
    
main() async 
  String username = 'test';
  String password = '123£';
  String basicAuth =
      'Basic ' + base64Encode(utf8.encode('$username:$password'));
  print(basicAuth);
    
  Response r = await get('https://api.somewhere.io',
      headers: <String, String>'authorization': basicAuth);
  print(r.statusCode);
  print(r.body);

【讨论】:

完美!我可以拼凑 http 位,但不知道如何实际构建标头。刚刚测试了一下,效果很好 如果需要header,可以使用http post,例如:final loginResponse = await client.post(loginUrl, body: json.encode(user), headers: header); 嗨,我想使用 oAuth1 而不是 basic,因为我不在 HTTPS 上,我在 HTTP 上,有什么建议吗? 预构建 Header-map 需要 Map 中的强类型:medium.com/@hagenverfolgt/… 在我的情况下,这会导致一个永远挂起的请求。任何想法为什么?【参考方案2】:

我知道已经晚了,但如果它可以帮助其他人,我会发布这个。

import 'dart:convert';

var auth = 'Basic '+base64Encode(utf8.encode('$username:$password'));

Future<Response> callAPI(param) async 
    await dio.post('/api/test',
        data: 'param': param,
        options: Options(headers: <String, String>'authorization': auth)); 
  

【讨论】:

将 ZIP 文件发送到基于 REST 的 API,该 API 使用基于 Flutter 的移动应用程序托管在 AWS 上的 SSL TLS (https)

...将ZIP文件发送到基于REST的API,该API使用基于Flutter的移动应用程序托管在AWS上的SSLTLS(https)【英文标题】:SendZIPfiletoaRESTbasedAPIwhichisusingSSLTLS(https)hostedonAWSfromaflutterbasedmobileapplication【发布时间】:2020-07-0808:32:43【问题描述】:之前... 查看详情

如何在 Flutter 移动应用项目中使用 testWidgets 测试画布

】如何在Flutter移动应用项目中使用testWidgets测试画布【英文标题】:HowtotestcanvaswithtestWidgetsinafluttermobileappproject【发布时间】:2020-11-1711:23:04【问题描述】:我正在阅读有关如何使用testWidgets函数为Flutter应用小部件构建测试的信... 查看详情

Flutter:在浏览器中运行网页版时如何停止显示移动应用

...50:33【问题描述】:我正在移动和Web平台上使用Flutter构建应用程序。从Web到Mobile,我有几个不同的UI要显示。在chrome上运行的Web版本中,当我更改浏览器的大小时,它会 查看详情

Flutter:如何在用户移动时获得精确的速度和行进距离?

...:2021-02-2114:57:22【问题描述】:我正在尝试构建一种健身应用程序。我想知道用户的速度,也想显示用户行进的距离。我已经知道如何使用Geolocator包获取它,但数据不够精确,事实上,即使用户不移动(并且行进距离增 查看详情

如何在不使用 Play 商店的情况下在移动设备上部署 Flutter 应用程序进行测试

】如何在不使用Play商店的情况下在移动设备上部署Flutter应用程序进行测试【英文标题】:HowdoIdeployflutterapponmobiledevicefortestingwithoutusingplaystore【发布时间】:2021-10-3020:19:29【问题描述】:我是Flutter开发的新手。我创建了一个使... 查看详情

我应该如何在我的应用程序的 Flutter 移动版和网页版之间做出一些区别?

】我应该如何在我的应用程序的Flutter移动版和网页版之间做出一些区别?【英文标题】:HowshouldImakesomedifferencesbetweenFluttermobileandwebversionofmyapp?【发布时间】:2022-01-2308:18:51【问题描述】:如果我想为我的应用程序使用一个代码... 查看详情

如何清除flutter桌面应用程序数据,如flutter移动应用程序

】如何清除flutter桌面应用程序数据,如flutter移动应用程序【英文标题】:Howtoclearflutterdesktopappdatalikefluttermobileapp【发布时间】:2021-05-3102:16:39【问题描述】:我正在开发Flutter桌面应用程序,我想清除应用程序数据库,就像我们... 查看详情

如何将热图添加到 Flutter 移动应用程序

】如何将热图添加到Flutter移动应用程序【英文标题】:HowtoAddHeatMapstoFlutterMobileapp【发布时间】:2020-02-0704:02:42【问题描述】:我正在尝试将热图添加到GoogleMaps,我在文档中找不到对此的任何引用,有没有办法这样做。?我知道... 查看详情

如何通过 Facebook 移动应用程序在 Flutter 应用程序中将链接(或图像)与用户管理的 Facebook 页面共享

】如何通过Facebook移动应用程序在Flutter应用程序中将链接(或图像)与用户管理的Facebook页面共享【英文标题】:Howtosharelink(orimage)withquotetoaFacebookPagemanagedbytheuserinaFlutterappviaFacebookmobileapp【发布时间】:2020-07-1207:22:34【问题描述... 查看详情

如何在我的应用程序中添加 Flutter API/模块?

】如何在我的应用程序中添加FlutterAPI/模块?【英文标题】:HowtoaddaFlutterAPI/Moduleinmyapp?【发布时间】:2020-10-1105:06:24【问题描述】:我正在尝试使用Flutter制作动漫应用程序。为此,我需要一个RESTAPI,但幸运的是我找到了一个dart... 查看详情

如何在 Flutter 中存储 API 密钥(2020 年 7 月)

...】:现在是2020年7月。悬而未决的问题是:如果我的Flutter应用程序需要秘密字符串才能运行,比如API密钥,那么什么策略可以防止恶意方从已发布的应用程序中提取此API密钥?我发现了一些关于这个主题的讨论线索,但似乎没有... 查看详情

如何在 Flutter 移动端、Web 端和窗口中添加条件导入?

...w?【发布时间】:2021-08-2810:12:31【问题描述】:我有Flutter应用程序,它为每个平台(移动、网络、窗口)使用不同的webview插件。虽然我可以在web和mobile的基础上使用import平台,但我无法为Windows导入。如 查看详情

如何在 Flutter 应用中实现 reCaptcha

...】:2020-06-2518:30:40【问题描述】:我正在尝试在我的颤振应用程序中实现reCaptcha功能,但在验证码注册中,我需要提供一个我没有用于移动应用程序的域。我浏览了几本指导如何将reCaptcha实施到移动应用程序中的指南,但这些指... 查看详情

如何在 Flutter 中使用 Razorpay 订单 API?

...布时间】:2020-08-0219:54:46【问题描述】:我正在我的颤振应用程序中实现支付网关。所以Razorpay推荐我使用OrdersAPI。但我没有任何方法来实现OrdersAPI。我参考了以下文档。它包含java、PHP等的示例。但没有找到Flutter/Dart的示例。htt... 查看详情

如何在 Flutter Web 中渲染 SVG?

...020-11-0703:44:44【问题描述】:我的最终目标是将Flutter移动应用程序转换为Flutter网络应用程序。我在Flutter移动应用中使用了flutter_svg,但在FlutterWeb应用中无法使用。Flutterweb的替代插件是什么?当我使用flutterrun-dchrome在chro 查看详情

如何测试从 Flutter 应用程序到 localhost 服务的 api 调用?

】如何测试从Flutter应用程序到localhost服务的api调用?【英文标题】:Howtotestapicallsfromflutterapptolocalhostservice?【发布时间】:2020-07-1119:23:44【问题描述】:我正在尝试了解如何测试从我的Flutter应用程序(在模拟器中运行)到我的... 查看详情

在 Flutter 中限制 Google Directions API 密钥

...它使用GoogleDirectionsAPI,现在我想将API密钥限制在此特定应用程序中。我能够对应用进行签名,并且我已使用我的应用的包名称 查看详情

如何在 Flutter 移动应用中将 Azure AD 用户登录到 Firebase?

...布时间】:2021-01-1122:24:54【问题描述】:对于Flutter移动应用程序,我正在尝试使用MicrosoftOAuthProvider获取Firebase凭据,通过该凭据让用户使用其AzureAD帐户登录Firebase。我 查看详情