問題タブ [securesocial]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - ActionBuilder を securesocial SecuredAction と一緒に使用する
私は play 2.2.1 を securesocial で使用しており、私のアクションの多くは securesocial がSecuredAction
提供する を使用して認証されています。
ActionBuilder
ここで、ドキュメントの ItemAction のように、特定のタイプのリクエスト用に を作成したいと思います。
私はこのようなことをしようとします
このコンパイルエラーが発生します
invokeBlock が aplay.api.mvc.Request[A]
ではなくa を取ることになっていることは理解してsecuresocial.core.SecuredRequest[A]
いますが、それを機能させることはできません。
api - トークンは Cookie に基づいていますか?
Play Framework 2.X に基づいてプロジェクト用の RESTful API を構築しています。
私の焦点は、私が実装した認証メカニズムにあります。
現在、私はSecureSocialを利用しています。ワークフローは次のとおりです。
- 匿名ユーザーが保護された API を呼び出す
- サーバーは任意の Cookie ID (認証トークンの種類) を取得し、Play 2 キャッシュで一致するかどうかを確認します。(キャッシュには、Cookie ID (ランダムに生成) とユーザー ID の間の関連付けが含まれており、データベースからアクセスできます。
- いずれかが一致した場合、ユーザーは期待されるサービスを処理する権限を与えられます。
- 一致するものがない場合、ユーザーはログイン ページにリダイレクトされ、有効な資格情報 (電子メール/パスワード) が入力されると、サーバーは対応する認証データを Play 2 キャッシュに保存し、カスタム Id (認証トークン) のみを含む新しく作成された Cookie を送信します。もちろん、SSL によって保護されます。
- Cookie/トークンの有効期限が切れていない間、ユーザーはセキュアな API を呼び出すことができます (もちろん、承認されている場合)
全体がうまく機能します。
しかし、いくつかの検索の後、私はこの投稿に出くわしました、そして...私は正しい方法でいるのだろうか.
実際、Cookie (Play の用語では「セッション」) を扱うと、Restfulness のルールが破られます。実際にステートレスと見なされる API は、必要なすべてのデータ (資格情報/トークンなど) を一度に呼び出す必要があるためです。私が実装したソリューションには、両方の呼び出しが必要です。1 つは認証用で、もう 1 つは保護された API を呼び出すためです。
私は物事をうまく作りたいと思っています。
API キーの使用についてはどうですか?
SecureSocial
このワークフローの代わりにそれらを使用してソリューションを実装する必要がありますか? API キーは、安らぎを保つために、すべての API 呼び出しで送信されます。一部の Web アプリケーション、モバイル、およびその他の種類のクライアントから API にアクセスできるようにしたいので、考えてみます。Cookie の管理を強制されるものはありません。OAuthはどうですか?本当に必要ですか?単純な API キーの使用を完全に置き換えるでしょうか? この既知のプロトコルは、常に複数のクライアントを対象とするため、認証と承認を管理する優れた方法です。
一言で言えば、Restful に準拠するために別のメカニズムを実装する必要がありますか?
playframework - Securesocial 0.2.5 と Google を使用し、localhost で Playframework 1.2.7 を使用する
play 1.2.7 アプリに securesocial を正常にインストールし、Yahoo で動作しています。しかし、私はグーグルに問題があります。よろしくお願いします。
securesocial.google.requestTokenURL= https://www.google.com/accounts/OAuthGetRequestToken securesocial.google.accessTokenURL= https://www.google.com/accounts/OAuthGetAccessToken securesocial.google.authorizationURL= https://www. google.com/accounts/OAuthAuthorizeToken securesocial.google.scope= http://www-opensocial.googleusercontent.com/api/people securesocial.google.consumerKey=mykey
securesocial.google.consumerSecret=mysecret
しかし、次の例外が発生しています。
16:00:24,934 DEBUG ~ 追加 uri: https://www.google.com:443 for channel [id: 0x00925f6d, /192.168.1.75:56337 => www.google.com/74.125.236.114:443] 16: 00:24,935 エラー ~ OpenID+OAuth コールバックに要求トークンがありません。プロバイダー: google securesocial.provider.AuthenticationException
java - play フレームワークとスプリング用に secureSocial をカスタマイズする (依存性注入)
Play 2.0.6 with play と spring 用に安全なソーシャル バージョン 2.0.13 を使用しています。タイプ セーフ チュートリアルからプロジェクト テンプレートをダウンロードし、http://securesocial.ws/guide/getting-started.htmlのガイドを使用してセキュア ソーシャルを追加し ました。ログイン ページが必要だったので、ログインとテンプレートを自分のバージョンに置き換えました。サインアップはありません。そのため、ログインとそのテンプレートをカスタム パッケージにコピーし、そこからサインアップ タグを削除しました。問題は、アプリケーションを起動して URL を要求すると、次のエラーに直面することです。
ただし、Spring を使用しない (Global も getControllerInstance も使用しない) 場合、サンプルは問題なく動作します。 安全なソーシャルと春を一緒に使用するのを手伝ってください。ありがとう。
java - Securesocial - カスタム ビューでユーザー データを取得する
私は自分用に securesocial のカスタマイズを開始しましたが、ビューのカスタマイズ中に 1 つの問題に遭遇しました。次のようなテキストを使用して、ウィンドウの上に永続的なツールバー テンプレートを作成しようとしています
このツールバーは、カスタム メイン ビューで生成されます。
コードから呼び出されるもの (index.scala.html の例):
カスタマイズされたビューを使用しようとすると、特にpasswordChange.scala.html
. このビューは、securesocial ( PasswordChange
) によって提供される標準コントローラから呼び出され、制御を自分のプラグイン (MyViews
レンダリング ビューと extends の単純な実装を持つ) に渡しTemplatesPlugin
ます。ユーザー コンテキストに関する情報はありません。したがって、ユーザーがログに記録されている場合でもオンにすると、パスワードの変更中にツールバーに「ようこそ、ゲスト」と表示され、パスワードの変更中にユーザーがログオンしているにもかかわらず、対応するメニューに「ログイン」や「サインアップ」などが表示されます。
カスタムビューにユーザー情報を渡すためのソリューションを誰かに提供してもらえますか (できれば、組み込みの securesocial コントローラーを書き換えることなく)。
playframework - シングル ページ アプリでセキュア ソーシャルを使用する
製品のレビューを書く場合のように、一部のアクションのみが認証を必要とする単純な e コマースのような Web サイトを開発しています。
たとえば、レビューがクリックされた場合、ログイン ページはシングル ページ アプリとして読み込まれますが、セキュア ソーシャルのログイン ページで UsernamePasswordProvider/Facebook でログインすると、ページ全体が読み込まれます。
securesocial を fork し、すべての呼び出しを ajax/single page app 呼び出しとして変更するよりも、single page app にする簡単な方法はありますか?
playframework - 現在サインインしているユーザーの SecureSocial へのクエリ
Secure Social APIを使用して Playframework アプリケーションに現在サインインしているユーザーを知る方法はありますか? もしそうなら、どのように?
より一般的には、現在サインインしているユーザーは、Play/SecureSocial アプリケーションのどこにどのように保存されていますか?
unit-testing - SecureSocial を使用した Play フレームワークでのコントローラーの単体テスト
私は、ある種のモック SecureSocial アクション ジェネレーター、または SecureSocial 自体を発明して、コントローラー メソッドを単体テストできるようにしようとしています。Securesocialアノテーションで保護された単体テスト方法や、依存性注入を使用してSecureSocialでPlay2アプリケーションをテストするなど、いくつかのアプローチを見つけましたが、実際には、その質問の作者は単体テストを行うのではなく、統合テストを行います.
私の単体テストは次のようになります。
ご覧のとおり、依存関係をモックして、コントローラー メソッドが実際に行う動作を分離してテストしました。
MyController.list メソッドに securesocial の SecuredAction を使用するまでは、すべて問題ありませんでした。今度は例外が発生し、テストは失敗します。securesocial から SecuredAction および UserAwareAction オブジェクトをモック、スタブ、またはオーバーライドする方法がわかりません。それでも、テストを route(...) テストに変換したくありません。これらは、コントローラーの動作のみをテストすることを目的としています。
誰かが同じ問題に遭遇しましたか? どのように解決できるかのヒントがあるかもしれませんか?
PS: Play フレームワーク 2.2.1、securesocial - 2.1.2