Mediawiki api登录不接受令牌

时间:2017-05-24 13:47:15

标签: php api mediawiki

我尝试对mediawiki api进行身份验证,但它不接受我请求的登录令牌。当我(通过POST)请求像action=query&meta=tokens&type=login&format=json这样的令牌时,它会返回一个令牌,例如

batchcomplete:
query: {
    tokens: {
        logintoken: af69aa46ef0e505dca1b4b0ea696a55259258b4f+\
    }
}

但是,当我现在尝试使用action=login&lgname=user&lgpassword=password&lgtoken=af69aa46ef0e505dca1b4b0ea696a55259258b4f%2B%5C&format=json进行身份验证时,我只会收到此消息

warnings: {
    main: {
        *: Subscribe to the mediawiki-api-announce mailing list at for notice of API deprecations and breaking changes. Use [Special:ApiFeatureUsage]] to see usage of deprecated features by your application.
    }
    login: {
        *: Fetching a token via "action=login" is deprecated. Use "action=query&meta=tokens&type=login" instead.
    }
}
login: {
    result: NeedToken
    token: a26aa15ecc99c421db73b86e7581497959258b4f+\
}

似乎它没有识别令牌。我使用机密密码登录。

感谢您的帮助

西蒙

1 个答案:

答案 0 :(得分:0)

Tgr的评论解决了我的问题:

  

您需要在同一会话中发出请求。

如何在php脚本中使用会话?

  

取决于您用于发出网络请求的内容。使用curl,您需要使用cookie jar + cookie文件选项。