首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Flutter for Mediawiki进行客户端登录

使用Flutter for Mediawiki进行客户端登录
EN

Stack Overflow用户
提问于 2020-12-15 18:13:23
回答 1查看 118关注 0票数 0

我正在学习flutter和requests,所以如果这是一个简单的错误,请原谅我。我正在尝试使用客户端登录api让客户端登录到mediaiwki实例。我可以成功获取登录令牌,但当我尝试登录时,提示{"error":{"code":"badtoken","info":"Invalid csrf token.","*":“。我正在使用的登录接口如下所示。https://www.mediawiki.org/wiki/API:Login#Method_2._clientlogin感谢您的帮助。

要成功获取登录令牌,我使用

代码语言:javascript
复制
_fetch_login_token() async {
  Map<String, String> headers = {"Content-type": "application/json"};
  Map<String, String> body = {
    'action': "query",
    'meta': "tokens",
    'type': "login",
    'format': "json"
  };

  Response response = await post(
    url,
    body: body,
  );
  //print(response);
  // int statusCode = response.statusCode;
  // print(statusCode);
  var decoded = jsonDecode(response.body);
  print(decoded);
  var jsonsData = response.body; // toString of Response's body is assigned to jsonDataString
  var data = jsonDecode(jsonsData);
  var token=data['query']['tokens']['logintoken'];
  return _makePostRequest(token);
}

和失败的登录,如下所示

代码语言:javascript
复制
Map<String, String> body = {
    'action': "clientlogin",
    'username': username,
    'password': password,
    'loginreturnurl': url,
    'logintoken': loginToken,
    'format': "json"
    };

  Response response = await post(
    url,
    body:body,
  );
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-22 20:13:22

我解决了problem.For未来的参考,我已经下载了音频包,并添加了拦截器和cookie管理器来持久化cookie。

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

https://stackoverflow.com/questions/65303820

复制
相关文章

相似问题

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