【问题标题】:Mashery IODocs - Can it support passportjs authentication from my REST API?Mashery IODocs - 它可以支持来自我的 REST API 的 passportjs 身份验证吗?
【发布时间】:2013-01-18 17:18:01
【问题描述】:

我正在使用 Mashery 的 iodocs 作为我的 REST API 的开发前端。我的 API 是用 Node / Express 编写的,并使用 PassportJS 对用户进行身份验证(本地策略)。我的实现要求用户使用 /login 端点,传入用户名和密码。然后,Passport 将用户序列化到一个 cookie 中,这样后续的请求就不需要登录了。

使用 iodocs 时,Passport 设置的 cookie(“connect.sid”)不会在后续请求中传回。

有没有办法做到这一点? IODocs 是否支持以这种方式工作的身份验证方法?

【问题讨论】:

  • BTW - 我在 localhost:3001 上运行 iodocs,在 localhost:3000 上运行我的 REST API。我怀疑 cookie 不能在不同端口之间传递 - 我将 nginx 设置为代理并重试。

标签: node.js express passport.js iodocs


【解决方案1】:

Cookie 将穿越端口。您可能遇到的一个问题是 I/O Docs 也设置了“connect.sid”,因为它使用 Express session.js 中间件模块,因此 cookie 值可能会被覆盖。

尝试在会话初始化程序中使用不同的 cookie 名称更新 I/O Docs app.js -- 设置“key”值:

app.use(express.session({
    secret: config.sessionSecret,
    key: 'iodocs.connect.sid',
    store:  new RedisStore({
        'host':   config.redis.host,
        'port':   config.redis.port,
        'pass':   config.redis.password,
        'maxAge': 1209600000
    })
}));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    • 2014-01-26
    • 2011-12-23
    • 1970-01-01
    • 2018-07-26
    • 2019-02-14
    • 1970-01-01
    相关资源
    最近更新 更多