2016-09-27 19 views
0

私は、Webサービスを通じてさまざまなアプリケーションに暗号鍵を提供するためのRoR5アプリケーションを開発しています。私のRoRアプリケーションは、ユーザと入れ子になった暗号(ネストされた属性を使用して)を管理します。暗号には名前と値(文字列)があります。ユーザーは暗号を作成するためにサインインする必要があります。Ruby on Rails 5:認証でネストされた属性を提供するWebサービスを作成する方法は?

私は要求されたキーを提供するためにWebサービスを公開したい:

1 - クライアントアプリケーションが認証(ユーザーなど)やウェブサービス

2に暗号IDを提供 - WebサービスCipher値を返します

暗号はネストされた属性として管理されるため、私はこのサービスのための新しい専用ルートを作成しました。ここでは、現在のroutes.rbをです:

Rails.application.routes.draw do 
    get 'sessions/new' 

    root to: 'users#index' 
    get '/login', to: 'sessions#new' 
    post '/login', to: 'sessions#create' 
    delete '/logout', to: 'sessions#destroy' 

    get '/api/:id/', to: 'ciphers#api' 
    resources :users 

end 

特定の暗号コントローラは、APIをサポートしています。

class CiphersController < ApplicationController 

    #API 
    def api 
    @cipher = Cipher.find(params[:id]) 
    @user = User.find(@cipher.user_id) 
    puts @user.nom 
    respond_to do |format| 
     format.html 
     format.json { render json: @cipher.cipher_hash} 
    end 
    end 

end 

HTML形式は、テストのためだけに使用可能です。 JSON形式は、実際に暗号ハッシュ値を期待通りに返します。

実際の質問は、セキュリティを設定してサービスにユーザー認証を提供する方法です。

+0

これは広すぎます.. –

答えて

0

Jsonデータのみを提供するAPIでは、認証フォームは使用できません。認証は、API urlを呼び出すときにリクエストヘッダとして渡されるトークンを介して行わなければなりません。

周辺を検索したところ、このリソースはDevise認証ソリューションに基づいてSimple token authenticationでした。

関連する問題