我已经实现了一个基本的登录系统,它使用已知的社交网络(Twitter、FB、G+ 等)作为其登录提供程序,登录过程运行良好,但问题是检测用户的登录状态。例如,要确保用户通过他的 Twitter 帐户登录,我必须:
- 检查他的本地 cookie 中是否存在 OAuth 令牌和 OAuth 令牌机密(均已安全加密)作为初始检查。
- 如果存在这些 cookie;我现在需要确保它们都是有效的。所以我必须请求 Twitter 的 API 资源
/account/verify_credentials.json
并验证响应的状态码是200 OK
(否则用户有无效的令牌)
因此,如您所见,第二次检查非常昂贵,尤其是当我对每个请求都进行检查时,因为 - 例如 - 如果用户已登录,则没有理由显示“登录”按钮(即在标题中 - 标题存在于所有页面中)
是否有更好的标准化(跨 OAuth 提供者)方法来检查用户的登录状态?