2

我正在考虑拥有一个完全解耦的 HTML5 前端,但仍然是 Web 应用程序的用户身份验证。这是可能的还是我会遇到一些严重的浏览器安全问题?

这个想法是让所有静态内容通过 CDN 在 example.com 上交付,并让它通过单独的子域(如 api.example.com)获取动态数据(和用户身份验证)。这将加快网站的加载时间,并且我可以将前端的东西保存在一个完全独立的仓库中,这样开发人员就不必担心设置后端来开发和测试新功能。

这在某些 JS 框架中是否已经可能,backbone.js、angular.js、ember.js、knockout.js?

4

1 回答 1

1

肯定是这样,但我认为这更多是关于方法而不是技术。我已经实现了你为一个项目描述的内容(它是在线的,但不想在这里做一个无耻的插件,如果有兴趣查看它,我可以发布链接)。我的堆栈是后端的 java,为身份验证和业务逻辑公开了一个 REST api。客户端是一个backbone.js 应用程序。我明确决定根本不使用会话。它是完全无国籍的。这当然意味着用户必须在每次请求时重新进行身份验证。

当用户通过稍作修改的 OAuth 端点登录时,它会获得一个令牌,必须在每次请求时传递该令牌。Cookie 在这种情况下起作用,因为它们是由浏览器自动处理的。如果不作为 cookie 传递,后端期望它作为参数。前端使用 REST 端点进行通信。它是一个单页应用程序,全客户端,这意味着后端服务的页面基本上是空的,其中包含一些应用程序本身的 JS 文件。不会发生其他页面加载。注销是通过简单地删除 cookie 或不发送 authToken 来完成的,服务器不能也不必“忘记”用户。令牌很好,因为它们可以通过显式或更改密码无效。我'

于 2013-06-10T09:06:41.990 回答