javascript - 使用 JavaScript 在不暴露客户端 secret 的情况下搜索四方位

标签 javascript api oauth-2.0 authentication foursquare

我正在阅读 Foursquare API 并试图了解如何使用它进行地点搜索(作为 Google Places 的替代方案)。然而,令我惊讶的是它始终需要提供客户端 key !

我在浏览器中使用它,获得响应的唯一方法是在请求中同时提供客户端密码和客户端 ID。这是“客户 secret ”,应该有另一种方法可以做到这一点,而不使用客户 secret 。 Google API 检查引用 url 和客户端 ID。 Foursquare 支持这样的东西吗?

我知道我可以在我的服务器中向 foursquare 发出请求并从我的 JavaScript 客户端代码中调用它。但这将是非常丑陋的(IMO),因为用户必须等待双倍的响应时间 user -> my-server -> foursquare-api 而不是 user -> foursquare-api.

我的 Web 应用程序中的一个页面将使用它:Where can I a great place in the city to see Christmas lights in Boston, MA? , 尝试分享一个提示以找出答案(你不必真的发布它!)。

最佳答案

这是我从一位开发人员那里学到的技巧。

它不是代理,但类似。它仍然会从您的 IP 地址(而不是服务器)发出请求,但签名发生在服务器上。它不会产生大量网络流量。

基本上它只是一个签名端点。您在服务器上创建一个页面,该页面仅对请求进行签名但实际上并不执行它。然后使用 Location: https://api.foursquare.com/... header 将用户重定向到页面的签名版本。

请注意,所有签名都发生在服务器上,但实际请求是由客户端发出的。不会泄露任何 secret ,因为它们仅在服务器上使用。

关于javascript - 使用 JavaScript 在不暴露客户端 secret 的情况下搜索四方位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8694492/

相关文章:

javascript - 使用 ES6 语法和动态路径导入模块

javascript - 为什么浏览器不遵循使用 XMLHTTPRequest 和 CORS 的重定向?

php - 如何实现PHP/jQuery在线文档查看器?

php - 如何使用带有自定义用户名列的 Laravel Passport

azure - 尝试登录时找不到租户?

javascript - Json 文件 curl php javascript

javascript - Ajax 调用没有响应

javascript - Google map 进行调整以包含用户和地址

api - 我该如何使用MindMeister API的 "Personal access tokens"?

http - 如果 OAuth2 回调无效,我应该返回什么状态