首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用flutter针对OAUth 2.0API (fatsecret)进行授权

如何使用flutter针对OAUth 2.0API (fatsecret)进行授权
EN

Stack Overflow用户
提问于 2019-07-01 01:08:20
回答 1查看 404关注 0票数 0

我想对fatsecret服务进行授权并获得令牌。我尝试遵循https://platform.fatsecret.com/api/Default.aspx?screen=rapiauth2的文档,并用flutter重写给定的curl代码,但我无法使其正常工作。

我已经尝试了不同类型的请求(post,get),我尝试将授权放入url,并且尝试了不同的编码。不幸的是,一切都没有改变。这是我最后一次尝试:

代码语言:javascript
复制
static void _authorizeClient() async {

  Map<String, String> params = {
    'grant_type': 'client_credentials',
    'scope': 'basic',
  };

  Map<String, String> headers = {
    HttpHeaders.contentTypeHeader: 'application/json',
    HttpHeaders.authorizationHeader:
        'Basic ' + base64Encode(utf8.encode(clientId + ':' + clientSecret))
  };

  http.Response response = await http.post(
      Uri.https('oauth.fatsecret.com', 'connect/token', params),
      headers: headers);

  final responseJson = json.decode(response.body);
}

当我在他们的网站上运行curl代码时,我得到了一个令牌,没有问题,但我的代码就是不能工作,我总是得到一个400个错误的请求。

EN

回答 1

Stack Overflow用户

发布于 2019-07-01 05:47:57

Oauth不是一个简单的post请求,所以代码不会工作。你不想从头开始实现一个oauth库,因为你会因为加密、不成功的post请求以及不知道oauth流而头疼不已。我建议使用像this one这样的oAuth2库。如果您真的想创建自己的库,我可以向您推荐oauth2 specification

也许你会说“但是当我在他们的网站上运行curl代码时,我得到了一个没有问题的令牌”,我会对此做出回应。也许网站已经有了你的证书,或者一些cookies,或者秘密,并且它在你不知道的情况下发送了这些信息。如果您使用Opera测试干净的GET和POST请求而没有任何额外数据,请尝试使用PostMan或RestMan。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56826621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档