有没有办法将自定义参数传递给 Foursquare,它会在它的响应中传回?
在Facebook中,您可以使用 state 参数传递自定义参数:
https://www.facebook.com/dialog/oauth?
client_id=YOUR_APP_ID
&redirect_uri=YOUR_REDIRECT_URI
&scope=COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES
&state=SOME_ARBITRARY_BUT_UNIQUE_STRING
state 参数应设置为您为每个身份验证请求唯一生成的任意字符串。一旦用户授权您的应用程序,该值将作为参数传递回您的 redirect_uri,您应该检查返回的值是否与您在流程开始时传入的值匹配。这通过确保传入重定向是您启动的身份验证流的一部分来防止跨站点请求伪造。
谷歌也有 state 参数:
state
any string
表示收到响应后可能对您的应用程序有用的任何状态。Google 授权服务器会往返此参数,因此您的应用程序会收到它发送的相同值。可能的用途包括将用户重定向到站点中的正确资源、nonce 和跨站点请求伪造缓解。
使用 Foursquare 也将非常有帮助。