node.js - Reddit api session cookie 格式?

标签 node.js api authentication request reddit

我正在尝试使用 reddit api 通过使用 node.js 和 request.js 的机器人登录。我设法弄清楚我需要从/api/login 请求返回的 modhash 和 session cookie。我已使用以下代码访问了两者:

    request.post({
        uri: 'http://www.reddit.com/api/login',
        json: true,
        headers: agentheader,
        qs : logincreds
    },function(err,response,body){
        if(err){
            throw err;
        } else {
            if(response.statusCode == 200){
                mhash = body.json.data.modhash;
                session_cookie = body.json.data.cookie;
                console.log(body.json.data.cookie);
                console.log("login OK, modhash: "+mhash);
                console.log("Session cookie: "+session_cookie);
                agentheader = {
                    'user-agent': 'base10bot made by /u/01011110',
                    'X-Modhash' : mhash,
                    'Cookie' : 'reddit_session='+session_cookie
                };
    ...

在最后一点,我用 modhash 和 cookie 设置了自定义 header ,就像/r/redditdev 上的某人告诉我应该这样做的那样。如果没有“reddit_session =”部分, session cookie根本不起作用,但有了它,我所做的一切都会返回403禁止。

我很确定“cookie”的格式是错误的,因为当我记录它时,它显示为数字 ID、时间戳和全部以逗号分隔的哈希值。有人可以帮我找出发送此 cookie header 的正确方法吗?我在 google 上找到的所有内容要么使用 python requests,要么使用 bash。

最佳答案

我猜你没有将 body 解析为 JSON。试试这个 -

data = JSON.parse(body);
session_cookie = data.json.data.cookie;

关于node.js - Reddit api session cookie 格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21009700/

相关文章:

javascript - 如何解决函数中的无参数重新分配错误

node.js - 我完全按照教程所示编写了代码,但它不起作用

api - 从 Tesla Motors API 获取 client_id/client_secret

php - 从访问 token 获取 Facebook 用户(PHP SDK 3.0.1)

api - Paypal 自定义报告 API

asp.net-mvc - MVC 在 session 中保存 token

mysql - TYPO3前端登录创建加密密码

javascript - 如果我有一个字符串形式的 mongo 文档 ID,我该如何将其作为 _id 查询?

javascript - 如何正确继承String内置类

Python请求登录