使用Ruby on Rails在angular.js中的安全性

Pav*_*vel 13 security ruby-on-rails angularjs

进行身份验证的最佳方法是什么?

在前端我使用Angular.js

在后端:Ruby on Rails

Rails应用程序使用我的前端API.

更新: 这将是单页面应用程序.前端将在Angular.js中开发,后端在Ruby on Rails中.理想情况下,我想构建后端作为json中返回的资源集合.

我搜索安全实现的最佳方法.

当用户打开应用程序时,我需要检查用户是否已通过身份验证.如果不是 - 转到登录页面,如果经过身份验证 - 打开他想要的并从后端返回所需的资源.

我认为我需要在客户端存储身份验证令牌.生成它的最佳方法是什么,或者Rails已经为我生成了它?

Nib*_*ler 4

我根本不了解 Angular.JS,但我会尽力为您提供有关可与任何 Javascript 框架一起使用的 Rails 的一般信息。

对于身份验证,您只需要:

  • 用户模型
  • 处理登录的控制器,此方法检查用户登录名/密码,创建包含所需所有信息的会话对象(会话存储在服务器端,并在客户端使用 cookie 将每个请求与会话关联)
  • 用于处理注销的控制器,基本上只会破坏用户的会话

您可以在此处的 Rails 教程中找到一个很好的实现,或者您可以找到几个插件(authlogic似乎是 stackoverflow 用户的推荐

然后,使用静态 html 页面或使用 AJAX 处理身份验证之间几乎没有什么区别:

  • HTML 请求将向控制器发送登录名和密码,一旦会话创建,控制器将自动将其重定向到另一个内部页面
  • 在 AJAX 中,客户端的 javascript 应发送 ajax 请求,查找服务器的答案(成功/失败)并启动相应的操作(如果失败则显示消息,如果成功则重定向)

在这两种情况下,重要的是检查用户是否在每个控制器上进行了身份验证,否则任何人都将被允许启动操作或访问内部信息。