所以我有一个 Backbone 应用程序 + 网页主页。现在,如果您登录我的网站,我会使用数据库中的用户详细信息创建一个全局对象。但是,您仍然可以直接点击应用程序中的其中一条路线。
我应该如何处理未“登录”的用户并将他们重定向到“您必须登录页面”?
这是标准操作吗?基本上,我有一个 REST url 设置,仅返回
{ sessionId: [php-session-id-here] }
如果他们登录了,它会返回类似这样的内容:
{
sessionId: [php-sess-id],
userId: [user-id-from-db],
firstName: [f-name],
lastName: [l-name]
}
有想法吗?谢谢!
我过去所做的是将 AJAX 方法的扩展与 jQuery 一起包含在每个页面上(实际上,添加到 jQuery 文件中),以检查用户未登录时发送的自定义代码。当看到该值时,无论发生什么情况,它都会将用户重定向到登录页面。
这是因为该网站在登录时超时,因此用户可能会在坐在页面上时注销,然后 AJAX 请求就会失败。如果您没有登录超时,那么遇到此问题的可能性很小。只需忽略来自未登录用户的请求即可。
如果您需要帮助编码,请从这里开始:扩展 Ajax:预过滤器、转换器和传输 http://api.jquery.com/extending-ajax/.
确实不应该需要像伪代码一样复杂的东西:
- JS需要做一些AJAX,所以JS与服务器对话
- 如果需要,PHP 检查登录
- 如果未登录,则发回中止消息(我使用转换器来捕获“notLoggedIn”数据类型。但是,这也可以通过传输来完成,只是更复杂。)
- JS 看到中止消息并执行 window.location 重定向而不是返回 AJAX 消息。
如果需要,您可以加载带有登录表单的灯箱,然后通过 AJAX 将其发送到 PHP,在 PHP 中可以重新登录,如果您记得失败的 AJAX 尝试,您可以在登录后再次发送。然后用户甚至不需要离开页面即可重新登录。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)