Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用Passportjs从Angularjs(http get / resource)进行用户身份验证大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图使用带有Angular的Passportjs并表达.我试图在passportjs中测试facebook策略.

身份验证似乎成功但未导航到回调网址.它简单化了.

Firebug控制台显示
    GET http:// localhost:7000 / auth / facebook 302暂时移动“

然而,当我手动点击此网址但不自动重定向时,它会在浏览器窗口中成功打开回调网址(索引)

我的登录视图(jadE)如下所示:

a(href='/auth/facebook')
 p Login

和服务器端路由是:

app.get('/auth/facebook',passport.authenticate('facebook'));
app.get('/auth/facebook/callBACk',passport.authenticate('facebook',{ failureRedirect: '/login' }),function(req,res) {
res.render('index');
 });

请帮助.这是我第一次使用Angularjs& amp;节点js

编辑:更确切地说,只有当我的请求是从客户端(Angular中的登录页面)到我的快速服务器时才会出现问题.
        如果我从快递中提供登录页面,则没有问题.身份验证完成并按预期重定向到我的应用程序.

当服务器使用passportjs处理身份验证时,我们是否可以不从客户端(使用http get / post)向服务器发出身份验证请求?

解决方法

我目前正在尝试做同样的事情并遇到问题,但也许我可以澄清一些事情并提出一些建议.

在幕后,PassportJS的Facebook战略正在使用OAuth.通过使用这种方法,它将所有身份验证卸载到Facebook的服务器上.当您单击带有href =“/ auth / facebook”的链接时,您的快速服务器会将用户重定向到Facebook,然后再返回到您的应用程序.必须这样做以确保安全的身份验证,否则有人可能声称他们是Facebook并且自己“验证”用户.这也是为什么调用Angular $http.get(“/ auth / facebook”)不起作用的原因,它只是返回302重定向.

不幸的是,这是挑战的地方.如果您只是包含一个带有href“/ auth / facebook”的链接,服务器将对用户进行身份验证并返回到您的应用程序,但Angular无法知道您的用户已经过身份验证.我在https://github.com/enginous/angular-oauth找到了一个有角度的oauth示例,但我在消化它时遇到了一些麻烦.基本上他正在使用弹出窗口打开身份验证链接,在您的情况下为“/ auth / facebook”,并使用浏览器$window.postmessage与用户进行身份验证后收到的访问令牌通信回到他的主应用程序窗口然后关闭弹出窗口.

我认为这可能是最好的方法,但我仍然没有使用Passport.我很想听到其他人的想法/意见,因为我还是刚刚接触Angular的新人!

更新:
我最近发现了这篇博文http://www.frederiknakstad.com/authentication-in-single-page-applications-with-angular-js/,其中展示了使用Passport的Facebook策略与Angular的一个例子.他似乎在成功验证后设置了一个cookie,并在页面加载时对cookie进行了Angular轮询.这可能是一个更容易解决方

大佬总结

以上是大佬教程为你收集整理的使用Passportjs从Angularjs(http get / resource)进行用户身份验证全部内容,希望文章能够帮你解决使用Passportjs从Angularjs(http get / resource)进行用户身份验证所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。