node.js - 关于在 NodeJS 中使用 REST API 身份验证的困惑

标签 node.js authentication

我的项目使用 Express + NodeJS + Mongoose.js + PassportJS。我在 IOS 中为我​​的客户端应用程序创建了一个 API key ,每个请求都由这个 apikey 完成。

有时我需要来自服务器的用户相关数据。例如:

如果我请求查询 field ,并查看当前用户是否已对该 field 进行评级。

为此,我应该将用户 ID 作为参数发送到服务器,以进行与当前用户相关的查询。

正如我在 Foursquare API 中看到的,如果请求用户经过身份验证,您可以查询用户相关数据。如果用户未认证,仅应用认证,则无法查询用户相关数据。

那么,我应该给每个用户一个 apikey 吗?或者只有 1 个 API key 适用于将使用我的 API 的一个应用程序?

最佳答案

您提到您正在使用passportJs,为什么您不使用它进行用户身份验证,您有多种选项可用于对用户进行身份验证。您选择哪种方法取决于您的要求。为了让您了解如何设置基本身份验证,您可以引用此 https://github.com/jaredhanson/passport-local/blob/master/examples/express3/app.js

从上面的示例中,您可以像这样验证用户是否已通过身份验证

function ensureAuthenticated(req, res, next) {
if (req.isAuthenticated()) { return next(); }
res.redirect('/login')
}

您可以使用该方法作为路由中间件来限制用户访问。我认为我附加的链接为您提供了很好的主意,但如果您仍然需要任何帮助,请告诉我..

关于node.js - 关于在 NodeJS 中使用 REST API 身份验证的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14533301/

相关文章:

javascript - 更新 MongoDB 文档中的属性类型和值?

html - React JS 在带有reactstrap的页面中多次使用bootstrap轮播

Angular 2 : Unhandled Promise rejection: Template parse errors: 'login' is not a known element

node.js - 在NodeJS中,事件处理程序中的 `fs.writeFile()`会在某个时间点阻塞主线程吗?

javascript - 损坏的 v8 日期解析器有什么解决方法吗?

authentication - 如何在 vue 组件上使用 auth? (Vue.JS 2)

javascript - 检查浏览器的 U2F 功能

java - 如何使用 OpenSAML 将用户发送至 SAML 登录页面?

node.js - HTTP POST Google Cloud Functions NodeJS

没有 SSL 的 Facebook 登录