我的项目使用 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/