Rou*_*tor 14 node.js restify passport.js
我正在为使用NodeJS,Restify和PassportJS进行身份验证的SPA构建REST后端.除了最后一步之外,一切都正常工作,即将客户端从后端/ login/facebook/callback重定向到应用程序的主页.
我在网上搜索过,发现了很多ExpressJS的答案,但对Node-Restify没什么用处.我已经设法获取了一些代码片段,这就是我现在正在尝试的内容:
app.get('/api/v1/login/facebook/cb', passport.authenticate('facebook', { scope: 'email' }), function(req, res) {
req.session.user = req.user._id;
res.header('Location', '/#/home');
res.send();
});
Run Code Online (Sandbox Code Playgroud)
发送响应但不包括位置标题,并向客户端显示白屏.如何使用Node-Restify API进行正确的重定向?
jam*_*ack 16
Restify的Response接口现在有一个redirect
方法.
在撰写本文时,有一个测试显示如何在这里使用它.
该测试的内容是:
server.get('/1', function (req, res, next) {
res.redirect('https://www.foo.com', next);
});
Run Code Online (Sandbox Code Playgroud)
许多使用Restify的人更熟悉ExpressJS.重要的是要理解(同样,在撰写本文时)影响Express插件移植的三个主要公共API差异之一是res.redirect
Restify 中的方法要求您传递next
(或抛出InternalError).我亲自移植了几个模块,从Express到Restify,主要的API差异最初是(在Restify中):
server.use
仅适用于路径和HTTP方法无关的中间件res.redirect
要求你通过 next
req.path
.req.path
是req.getPath
Restify 的别名我并不是说它们是相似的,但上述三件事是移植Express插件的主要障碍.根据我在大型企业应用程序和个人项目中使用它的经验,Restify在Express方面具有许多优势.