問題タブ [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.

0 投票する
1 に答える
576 参照

scala - ActionBuilder を securesocial SecuredAction と一緒に使用する

私は play 2.2.1 を securesocial で使用しており、私のアクションの多くは securesocial がSecuredAction提供する を使用して認証されています。

ActionBuilderここで、ドキュメントの ItemAction のように、特定のタイプのリクエスト用に を作成したいと思います。

私はこのようなことをしようとします

このコンパイルエラーが発生します

invokeBlock が aplay.api.mvc.Request[A]ではなくa を取ることになっていることは理解してsecuresocial.core.SecuredRequest[A]いますが、それを機能させることはできません。

0 投票する
1 に答える
353 参照

api - トークンは Cookie に基づいていますか?

Play Framework 2.X に基づいてプロジェクト用の RESTful API を構築しています。

私の焦点は、私が実装した認証メカニズムにあります。

現在、私はSecureSocialを利用しています。ワークフローは次のとおりです。

  1. 匿名ユーザーが保護された API を呼び出す
  2. サーバーは任意の Cookie ID (認証トークンの種類) を取得し、Play 2 キャッシュで一致するかどうかを確認します。(キャッシュには、Cookie ID (ランダムに生成) とユーザー ID の間の関連付けが含まれており、データベースからアクセスできます。
  3. いずれかが一致した場合、ユーザーは期待されるサービスを処理する権限を与えられます。
  4. 一致するものがない場合、ユーザーはログイン ページにリダイレクトされ、有効な資格情報 (電子メール/パスワード) が入力されると、サーバーは対応する認証データを Play 2 キャッシュに保存し、カスタム Id (認証トークン) のみを含む新しく作成された Cookie を送信します。もちろん、SSL によって保護されます。
  5. Cookie/トークンの有効期限が切れていない間、ユーザーはセキュアな API を呼び出すことができます (もちろん、承認されている場合)

全体がうまく機能します。

しかし、いくつかの検索の後、私はこの投稿に出くわしました、そして...私は正しい方法でいるのだろうか.

実際、Cookie (Play の用語では「セッション」) を扱うと、Restfulness のルールが破られます。実際にステートレスと見なされる API は、必要なすべてのデータ (資格情報/トークンなど) を一度に呼び出す必要があるためです。私が実装したソリューションには、両方の呼び出しが必要です。1 つは認証用で、もう 1 つは保護された API を呼び出すためです。

私は物事をうまく作りたいと思っています。

  • API キーの使用についてはどうですか? SecureSocialこのワークフローの代わりにそれらを使用してソリューションを実装する必要がありますか? API キーは、安らぎを保つために、すべての API 呼び出しで送信されます。一部の Web アプリケーション、モバイル、およびその他の種類のクライアントから API にアクセスできるようにしたいので、考えてみます。Cookie の管理を強制されるものはありません。

  • OAuthはどうですか?本当に必要ですか?単純な API キーの使用を完全に置き換えるでしょうか? この既知のプロトコルは、常に複数のクライアントを対象とするため、認証と承認を管理する優れた方法です。

一言で言えば、Restful に準拠するために別のメカニズムを実装する必要がありますか?

0 投票する
0 に答える
118 参照

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

0 投票する
1 に答える
507 参照

java - play フレームワークとスプリング用に secureSocial をカスタマイズする (依存性注入)

Play 2.0.6 with play と spring 用に安全なソーシャル バージョン 2.0.13 を使用しています。タイプ セーフ チュートリアルからプロジェクト テンプレートをダウンロードし、http://securesocial.ws/guide/getting-started.htmlのガイドを使用してセキュア ソーシャルを追加し ました。ログイン ページが必要だったので、ログインとテンプレートを自分のバージョンに置き換えました。サインアップはありません。そのため、ログインとそのテンプレートをカスタム パッケージにコピーし、そこからサインアップ タグを削除しました。問題は、アプリケーションを起動して URL を要求すると、次のエラーに直面することです。

ただし、Spring を使用しない (Global も getControllerInstance も使用しない) 場合、サンプルは問題なく動作します。 安全なソーシャルと春を一緒に使用するのを手伝ってください。ありがとう。

0 投票する
2 に答える
364 参照

java - Securesocial - カスタム ビューでユーザー データを取得する

私は自分用に securesocial のカスタマイズを開始しましたが、ビューのカスタマイズ中に 1 つの問題に遭遇しました。次のようなテキストを使用して、ウィンドウの上に永続的なツールバー テンプレートを作成しようとしています

このツールバーは、カスタム メイン ビューで生成されます。

コードから呼び出されるもの (index.scala.html の例):

カスタマイズされたビューを使用しようとすると、特にpasswordChange.scala.html. このビューは、securesocial ( PasswordChange) によって提供される標準コントローラから呼び出され、制御を自分のプラグイン (MyViewsレンダリング ビューと extends の単純な実装を持つ) に渡しTemplatesPluginます。ユーザー コンテキストに関する情報はありません。したがって、ユーザーがログに記録されている場合でもオンにすると、パスワードの変更中にツールバーに「ようこそ、ゲスト」と表示され、パスワードの変更中にユーザーがログオンしているにもかかわらず、対応するメニューに「ログイン」や「サインアップ」などが表示されます。

カスタムビューにユーザー情報を渡すためのソリューションを誰かに提供してもらえますか (できれば、組み込みの securesocial コントローラーを書き換えることなく)。

0 投票する
1 に答える
208 参照

playframework - シングル ページ アプリでセキュア ソーシャルを使用する

製品のレビューを書く場合のように、一部のアクションのみが認証を必要とする単純な e コマースのような Web サイトを開発しています。

たとえば、レビューがクリックされた場合、ログイン ページはシングル ページ アプリとして読み込まれますが、セキュア ソーシャルのログイン ページで UsernamePasswordProvider/Facebook でログインすると、ページ全体が読み込まれます。

securesocial を fork し、すべての呼び出しを ajax/single page app 呼び出しとして変更するよりも、single page app にする簡単な方法はありますか?

0 投票する
2 に答える
264 参照

playframework - 現在サインインしているユーザーの SecureSocial へのクエリ

Secure Social APIを使用して Playframework アプリケーションに現在サインインしているユーザーを知る方法はありますか? もしそうなら、どのように?

より一般的には、現在サインインしているユーザーは、Play/SecureSocial アプリケーションのどこにどのように保存されていますか?

0 投票する
2 に答える
1185 参照

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