【发布时间】:2016-02-18 10:36:30
【问题描述】:
我在 Node.js 服务器上配置了 Passport,主要使用 Twitter 身份验证策略。
我对最近的一项发现感到困惑,该发现似乎表明带有浏览器 URL(使用 Web 浏览器搜索栏)的 GET 请求的身份验证方式似乎与来自应用程序代码内部的 AJAX 请求不同。例如,如果我使用 Passport 登录,我可以通过将浏览器指向直接向后端服务器发出请求的某些 url 来访问所有内容。但是 Angular 或 jQuery 对后端 API 的任何请求似乎都是未经授权的。
这完全正确吗?如果是这样,Passport 如何从 JS 代码中知道浏览器请求和 AJAX 请求之间的区别?
【问题讨论】:
-
(1) 您可以判断请求是否为 XHR (AJAX) 请求。 (2) 也许这只是没有正确的cookies的问题; Angular 或 jQuery 代码与 Node.js 服务器位于完全相同的主机名中吗?
-
这可能是错误的编码,或者是您的代码中的简单遗漏。当然没有办法知道
-
是的 - Angular 代码由与 API 服务器不同的服务器提供服务
-
听起来不错。很高兴你找到了解决方案。 :)
标签: javascript ajax node.js passport.js