我很难理解并在API中正确实现用户身份验证.换句话说,我很难理解Grape API与Backbone.js,AngularJS或Ember.js等前端框架的集成.
我试图调整所有不同的方法,并阅读了很多相关内容,但谷歌给我带来了真正糟糕的资源,在我看来,就像关于这个话题没有真正好的文章 - 使用Devise和前端的Rails和用户身份验证框架.
我将描述我目前的支点,我希望你能就我的实施提供一些反馈,并指出我正确的方向.
目前的实施
我有跟随Gemfile的后端Rails REST API(我会故意缩短所有文件代码)
gem 'rails', '4.1.6'
gem 'mongoid', '~> 4.0.0'
gem 'devise'
gem 'grape'
gem 'rack-cors', :require => 'rack/cors'
Run Code Online (Sandbox Code Playgroud)
我当前的实现只有具有以下路由的API(routes.rb):
api_base /api API::Base
GET /:version/posts(.:format)
GET /:version/posts/:id(.:format)
POST /:version/posts(.:format)
DELETE /:version/posts/:id(.:format)
POST /:version/users/authenticate(.:format)
POST /:version/users/register(.:format)
DELETE /:version/users/logout(.:format)
Run Code Online (Sandbox Code Playgroud)
我创建了以下模型user.rb
class User
include Mongoid::Document
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
field :email, type: String, default: ""
field :encrypted_password, type: String, default: ""
field :authentication_token, …Run Code Online (Sandbox Code Playgroud)