JVG*_*JVG 0 javascript node.js express angularjs passport.js
我的应用程序在NodeJS,ExpressJS和AngularJS上运行.我正在尝试使用PassportJS进行Facebook身份验证.为了避免发布一堆不必要的代码,让我们假设Passport代码按预期工作并登录到Facebook,抓取令牌并收到响应.
在ExpressJS中,我的路由设置如下:
app.get('/', routes.index);
app.get('/fbauth', passport.authenticate('facebook', { scope: 'email' }));
app.get('/fbauthed', passport.authenticate('facebook',{ failureRedirect: '/' }), routes.loggedin);
app.get('/logout', function(req, res) {
req.logOut();
res.redirect('/');
});
Run Code Online (Sandbox Code Playgroud)
我的服务器设置为localhost:3000.
题
我的问题是Angular完全没有表现出来.当我在我的页面上放置一个链接href="/fbauth"(这转到localhost:3000/fbauth)时,我看到地址栏改变localhost:3000/fbauth为一瞬间,然后我的localhost:3000主页重新加载.
但是,如果我输入localhost:3000/fbauth地址栏,验证就会发生,我会传递给Facebook - > localhost:3000/fbauthed.
我认为这是因为Angular路由试图"接管" <a>链接中的URL ,但我不知道如何实现它.我已经尝试将我的Angular路由配置为:
when('/fbauth', {
redirectTo: '/fbauth'
}).
Run Code Online (Sandbox Code Playgroud)
但这会加载一个空白屏幕.我怎样才能让两者一起工作?
添加target ="_ self"在Angular 1.0.1中起作用:
用Facebook登录
此功能已记录在案(http://docs.angularjs.org/guide/dev_guide.services.$ location - 搜索'_self')
如果你很好奇,请查看角度源(第5365行@ v1.0.1).只有在!elm.attr('target')为真时才会发生点击劫持.
| 归档时间: |
|
| 查看次数: |
418 次 |
| 最近记录: |