1

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

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

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

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

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

那么,我应该给每个用户一个 apikey 吗?或者只有 1 个 api 密钥到一个将使用我的 API 的应用程序?

4

2 回答 2

2

您已经提到您使用的是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')
}

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

于 2013-01-27T17:12:32.060 回答
0

您需要先将用户重定向到 Foursquare,以使他们在 Foursquare 上进行身份验证。您只需要一个 api 密钥。

考虑使用以下库之一: https ://github.com/Constantine-Fry/Foursquare-API-v2 https://github.com/baztokyo/foursquare-ios-api

或自己动手: https ://developer.foursquare.com/overview/auth

于 2013-01-26T02:58:15.550 回答