2011-11-15 12 views
0

なぜ私はこれをブラウザで動作させることができないのか混乱しています。私はそれが認証し、代わりにログインページを考案するために私をリダイレクトしないようRails 3 username認証されたDeviseリソースのURLにあるユーザパスワード

http://joe:[email protected]:3000/blog/latest 

としてURLにユーザー名とパスワードを使用してURLを使用して認証工夫リソースをテストしたいです。しかし、私はそれのJSON呼び出し作る場合、それは私がcurl

curl http://joe:[email protected]:3000/blog/latest 

思考を使用してテストの場合にも動作します

http://joe:[email protected]:3000/blog/latest.json 

に動作しますか?

答えて

0

deviseから認証可能なトークンを調べることができます。これはおそらく、念入りに証明書をボックスの外に出す最も効果的な方法です。

トークン認証可能:認証トークン(「シングルアクセストークン」とも呼ばれます)に基づいてユーザーにサインインします。トークンは、クエリ文字列またはHTTP基本認証の両方で指定できます。

https://github.com/plataformatec/devise/

深さより行くと、このポストはここに、提案として再利用可能な戦略が必要な場合はどのよう-することです:工夫がHTTP基本認証に組み込まれていないhttps://github.com/plataformatec/devise/wiki/How-To:-Use-HTTP-Authentication

まだあなたが必要なのですかあなたのアプリで二つの小さなものを持っているし、それが動作しました:

* :database_authenticatable strategy in your user/account model 
* config.http_authenticatable = true in the devise initializer 
+0

私が既に持っている両方の設定を、'考案:この問題を解決するには、コメントを外し、あなたの初期化子でこの行をdevise.rbと、アレイからHTMLを取り除くために行きます私の質問では、 'curl'と' JSON'呼び出しが動作しますが、最初の呼び出しではありません。 –

+0

BlogController defを最新のものにすることができますか? Mozilla、Chrome、IEなど複数のブラウザを試しましたか? –

+0

また、これはプロキシ(ApacheまたはNginx)の後ろにありますか?この問題を説明するこの段落は、NginxやApacheを介してDevise + RailsとHTTP Authを併用する場合は –

1

工夫はそれが認証401を発行する必要があるかどうかを判断するためのナビゲーション形式を使用しています。 JSONとXMLリクエストはデフォルトで401になります。ただし、HTMLリクエストはログインにリダイレクトされます。あなたが見ればdatabase_authenticatable`と `config.http_authenticatable`しかし:

config.navigational_formats = [:"*/*", "*/*"] 
関連する問題