2012-04-04 4 views
5

フロントエンドを単一ページのjavascriptソリューションにしたいビジネスアプリケーションの開発を開始しようとしています。バックエンドはREST APIとして提供されます。 Javascriptのフロントエンドから安全な方法でREST APIにアクセスするにはどうすればよいですか?javascriptからREST Oauth 2.0 APIを安全に使用する方法

私はすでに私のREST APIでOAuth 2.0の開発を開始しましたし、私はすでにjavascriptのクライアントのために推奨される流れである「暗黙のグラント・フロー」について知っています。問題は、このフローが短期間のアクセストークン(たぶん1時間?)を提供するだけであるということです。

私のシステムのユーザーは通常、午前中にログインしてジョブを終了する前に一日中(8時間)、ログアウトしますが、アクセストークンが1時間しか存在しない場合は、1時間ごとに再度ログインする必要がありますそれは簡単ではない。これをどうやって解決しますか?

+1

私が考えることのできる解決策の1つは、アクセストークンを返す代わりに、1時間で有効期限が切れることです。スライディング期限切れのaccess_tokenを返すことができます。クライアントがAPIに対して行うすべてのコールに対して、有効期限が20分に更新されます。しかし、これは安全だと考えられていますか?私は、Oauthサーバーの有効期限切れを見たことがありませんか? – rgullhaug

答えて

5

我々(ピング・アイデンティティ)の実装として、私たちのOAuthでのアクセストークンのサポートスライディング期限 - あなたはそれを行うことができないと言うOAuth 2.0の仕様賢明なものは何もありません。他の助成金タイプについては、リフレッシュトークンの寿命を長くする必要がありますが、暗黙的に使用することはできません。

あなたがJavaScriptのOAuthのツールキットが必要な場合はわからない

が、あなたの目的のために、おそらく適していますhere's one

+1

私の質問にお答えしていただきありがとうございます。私はスライディングの有効期限を実装する、また非常にjavascriptのツールキットをありがとう、私はそれをチェックします:)もう1つの質問:暗黙のフローでは、我々はクライアントの秘密を(クライアントとして秘密にすることはできません)異なるクライアントがAPIのさまざまな部分にアクセスできるため、どのクライアントがGoogleのサービスに接続しているかを確認する必要があります。 redirect_uriが登録されたredirect_uriと同じであることを確認すると、正しいクライアントと通信することが保証されますか? – rgullhaug

+1

はい - redirect_uriの比較が行われます。あなたが言ったように、あなたがクライアント側を維持する秘密は、ずっとずっと秘密です。 –

関連する問題