2013-03-12 5 views
5

私は一部のWebサイトと一部のWebサービスであるダンサーWebアプリケーションを持っています。私のアプリケーションの特定のルートにauthが必要です。APIキーをサポートするPerl Dancer Authソリューション?

ダンサーのウェブアプリで見つかったすべての認証ソリューションは、ログインページへのリダイレクトが必要です。これは対話的な使用では問題ありませんが、これは安らかなWebサービスには最適ではありません。

apiキーのようなものを許可する認証ソリューションはありますか?

+1

私はあまりにも多くのAPIキーについて知らないので、残念ながらそこにお手伝いできません。 Dancer :: Cookbookで概説されている認証方法は、ダンサーセッションで認証の詳細と認証の詳細を保存するための簡単なRESTのようなWebサービスを提供します。私はRESTベースのクライアント/サーバーアプリケーションでこのような戦略をうまく使っています。重要な点は、クライアントがセッションCookieを保持し、認証後にリクエストヘッダーにこれらを返すことができることです。詳細をご希望の場合はお知らせください。 –

+0

私は、セッション/クッキーを使用するとRESTの原則に違反したと思っていました... – Blaskovicz

+0

私はあなたがRESTの原則を見るかどうかにかかっていると思います。 1つの原則はステートレスサービスを作成することであり、使用するセッションはこれに違反します。しかし、確立されたインターネット技術を実用的に使用するというRESTの原則を見れば、セッションとクッキーがより理にかなっています。同僚が私に提案した同様のアプローチは、リクエストヘッダにユーザ名とパスワードのハッシュを渡すことです。ダンサーを使用して前のトリガーでそのヘッダー情報を処理できます。これはクッキーに依存しないステートレスなアプローチですが、認証されたサービスのテストを複雑にする可能性があります。 –

答えて

2

これを構築するには、Dancer::Plugin::Auth::Extensibleをご覧ください。各リクエストで資格情報を送信する最も簡単な方法。あなたはこのようにそれを行う場合は、クッキーを提供することができますが、あなたがする必要はありませんし、顧客は必ずしもする必要はありません

$ua->post('http://example.com/rest/getStuff?cred=foobar1234567, $search_criteria); 

:クライアント上では、このようなあなたのRESTサービスを呼び出すことだろうクッキーについて気にしてください。

を編集します。基本認証を使用する場合は、Plack::Builderをご覧ください。これを使用して、特定の要求に認証を追加することができます。

+1

私はそのモジュールについて著者と話しました。すべてのリクエストで/ loginフォームにリダイレクトしようとします(これは安らかなWebサービスでは簡単には動作しません)。 – Blaskovicz

関連する問題