2016-03-07 78 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'或任何其他特殊命名空間命名所有與設計令牌認證有關的命令。 –

相關問題