将 facebook 令牌从客户端发送到服务器的正确方法

Proper way to ship facebook token from client to server

我不确定如何将用户的 Facebook 令牌从他的客户端发送到我的服务器。我目前的做法如下:

  1. 用户打开网页并登录FB;
  2. Token从FB获取;
  3. 将用户客户端重定向到 /api/:token
  4. 使用express + node + app.get("/api/:token")获取服务器上的token

但是,这看起来并不安全,因为当我重定向用户时,他的令牌在浏览器上清晰可见,任何人都可以尝试猜测令牌来冒充其他用户。

问题:如何安全地将用户的 fb 令牌从客户端发送到我的服务器?我应该使用 ajax post 吗?

感谢您的帮助! :D

当您从客户端向服务器 post 您的密码和用户名时,也会出现同样的问题。您的选择是

  1. 使用 HTTPS
  2. 客户端加密数据,服务器解密

不用担心,您可以使用 appsecret_proof:

保护 Graph API 请求
curl \
  -F 'access_token=<access_token>' \
  -F 'appsecret_proof=<app secret proof>' \
  -F 'batch=[{"method":"GET", "relative_url":"me"},{"method":"GET", "relative_url":"me/friends?limit=50"}]' \
  https://graph.facebook.com