将 facebook 令牌从客户端发送到服务器的正确方法
Proper way to ship facebook token from client to server
我不确定如何将用户的 Facebook 令牌从他的客户端发送到我的服务器。我目前的做法如下:
- 用户打开网页并登录FB;
- Token从FB获取;
- 将用户客户端重定向到 /api/:token
- 使用express + node +
app.get("/api/:token")
获取服务器上的token
但是,这看起来并不安全,因为当我重定向用户时,他的令牌在浏览器上清晰可见,任何人都可以尝试猜测令牌来冒充其他用户。
问题:如何安全地将用户的 fb 令牌从客户端发送到我的服务器?我应该使用 ajax post 吗?
感谢您的帮助! :D
当您从客户端向服务器 post 您的密码和用户名时,也会出现同样的问题。您的选择是
- 使用 HTTPS
- 客户端加密数据,服务器解密
不用担心,您可以使用 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
我不确定如何将用户的 Facebook 令牌从他的客户端发送到我的服务器。我目前的做法如下:
- 用户打开网页并登录FB;
- Token从FB获取;
- 将用户客户端重定向到 /api/:token
- 使用express + node +
app.get("/api/:token")
获取服务器上的token
但是,这看起来并不安全,因为当我重定向用户时,他的令牌在浏览器上清晰可见,任何人都可以尝试猜测令牌来冒充其他用户。
问题:如何安全地将用户的 fb 令牌从客户端发送到我的服务器?我应该使用 ajax post 吗?
感谢您的帮助! :D
当您从客户端向服务器 post 您的密码和用户名时,也会出现同样的问题。您的选择是
- 使用 HTTPS
- 客户端加密数据,服务器解密
不用担心,您可以使用 appsecret_proof
:
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