2016-03-07 79 views
1

对于使用JSON API进行前端开发的应用程序,此gem(“devise_token_auth”)用于令牌身份验证。 我们可以使用这个gem进行服务器端渲染吗?如果是,那么如何将以前的响应添加到当前请求中?“devise_token_auth”gem是否支持基于Web的身份验证?

+0

如果您正在寻找简单的服务器端解决方案,为什么不使用'devise' gem? – domp

+0

我可以使用设计,但不支持移动应用程序的API。我想要支持网站和移动应用的东西。 – vipin8169

回答

5

我不知道这是不是还在为你当务之急,但我想在一些建议抛出。

为了您的API,你可以在devise_token_auth抛,它会做你所需要的一切为了验证那里。

如果你需要的网页服务器端渲染身份验证(如登录表单,重置密码表单等)随便扔在普通色器件了。它将与你完全相同的用户模型和表格一起工作,并且使用与devise_token_auth一起使用的相同资源来启动和运行它们将会产生一些摩擦。

的Gemfile

#autentication and authorization 
gem 'devise', '~> 3.5', '>= 3.5.6' 
gem 'devise_token_auth', '0.1.37' 

然后运行

bundle 

运行安装程序为色器件:

rails generate devise:install 

然后生成您的用户模型:

rails generate devise User 

立即安装devise_token_auth:

rails g devise_token_auth:install User "auth" 

,并确保您的数据库迁移:

rake db:migrate 

我认为devise_token_auth可能会覆盖您的用户模型,我不能肯定,但如果这样做,保持仅针对devise_token_auth的迁移并忽略Devise的迁移。

然后确保你的routes.rb一致的:mount_devise_token_auth之前

Rails.application.routes.draw do 

    devise_for :users 
    root "home#index" 

    namespace :api, defaults: { format: :json } do 
    namespace :v1 do #I namespace my routes 
     mount_devise_token_auth_for "User", at: "auth" 
    end 
    end 

end 

devise_for一定要来。

然后,只需参考官方装置和后制定令牌身份验证文档,可以使这两个解决方案为你工作。

希望这有助于人谁达到这一点,有必要对移动应用程序和浏览器的Web应用程序验证用户身份。

+0

谢谢。我会试试这个! – vipin8169

+0

在我使用的版本(0.1.38)有标准色器件功能(基于Web的认证)的支持 - 您可以用'config.enable_standard_devise_support = TRUE' – etagwerker

+0

只是为了记录了'devise_token_auth'配置启用我已经获得了两种解决方案,不使用配置开关,而是使用'api'或任何其他特殊命名空间命名所有与设计令牌认证有关的命令。 –

相关问题