在学习如何将 Facebook 身份验证集成到 ASP.NET MVC 应用程序中时,我编写了一个代码,该代码使用会话状态来存储通过 Facebook JS SDK 获得的 access_token。一旦 java 脚本代码拥有访问令牌,它就会被发布到一个特殊的控制器操作上,该操作将其存储在 Session 字典中。
我想避免使用 Session 但仍然可以使用访问令牌来检索用户信息。将其存储在非永久性 cookie 中是否安全?效果会一样吗?
您可能会感兴趣的是,官方 PHP SDK 将访问令牌存储在会话中,或者signed_request
存储在 cookie 中。但是,它signed_request
是使用应用程序机密加密的,这比存储未加密的访问令牌要安全得多。
https://github.com/facebook/facebook-php-sdk/tree/master/src
另外,这里是关于 cookie 与会话安全性的 stackoverflow 的先前讨论: 我在登录系统中使用 cookie 或会话登录吗?
如果您愿意,您可以创建自己的加密签名请求,但永远不要从您的客户那里这样做(因为它需要将秘密存储在您的客户上)。有关更多信息,请参阅 PHP SDK 和/或链接: https ://developers.facebook.com/docs/authentication/signed_request/