2017-06-14 5 views
0

Disqus disqusフォーラムでの投稿は時間の無駄だと思われるので、ここの誰かが助けてくれるかもしれません。Disqus OAuth2フローの問題

OAuth2フローを使用してDisqusユーザーをアプリケーションのアカウントシステムに接続しようとしているため、アクティビティ(投稿/コメント/ etc)を監視できます。私は私のアプリのために流星を使用しています。私はサーバーコードからOAuth2 authorizeエンドポイントを呼び出して、レンダリングのために結果のHTMLをクライアントに戻します。これはすべて正常に動作します。しかし、私はクライアント側で2つの問題が発生しています。まず、Disqusから返されたHTMLコードはフルページで設計されており、ユーザー名/パスワードフィールドはウィンドウ全体に広がっているようです。私はDisqusがフォーラムにログインするときに提供するようなダイアログ/モーダルポップアップを期待していました。私はBoostrap3モーダルウィンドウの中にHTMLをラップしようとしましたが、ほとんどの場合、ユーザー名とパスワードフィールドを除いて動作します。ダイアログボックスの右側が拡張されています。

醜いUIを無視すると、ユーザーが送信リンクをクリックすると、Disqusは「CSRF検証に失敗しました(403) - DISQUS」というエラーページを表示します。 OAuth2呼び出しがサーバーから行われ、送信がクライアントから行われている可能性があります。 OAUTH2のURLを直接ブラウザにコピーすると、すべて正常に動作します。しかし、セキュリティ上のリスクのように思えるので、私はAPIキーとその結果のコードをクライアントサイドに公開したくありません。

私が本当にやりたいことは、ユーザーが自分のアカウントを自分のアプリケーションに(他のユーザーではなく)接続しようとしていることを確認することです。私はアクセストークンを必要としないので、自分のアカウントでポストしているわけではありません(私はAPIキーをとるユーザー/詳細を呼び出しています)。だから私は自分のアプリのフォーラムを作成し、ログインエンドポイントを使ってユーザー名とパスワードの組み合わせを確認することを考えました。しかし、そのダイアログは、私が求めている範囲を説明していません。

ユーザー名とパスワードの入力を求めるダイアログボックスを作成し、サーバーに送信してサーバーに「偽」してDisqusに返送させることも考えました。 Disqusはいつでも予想されるフィールドを変更する可能性があるため、これは維持可能な解決策ではありません。そして、それは罪のように醜いです。

誰もが何か提案がありますか?私はそれがコーディングの問題であると信じていないので、私はコードを投稿しませんでした(そして、コードはちょっと複雑です)。しかし、誰かがそれがあなたの助けになると思うなら、私はそれを掲示することができます。そして、はい、私は、コードを投稿してもStackOverflowの規約に違反しないことを認識しています。しかし、私はDisqusのサポートが存在しないため、このポストを許す権限があると考えています。どこに手を差し伸べるべきかわかりません。

答えて

0

基本的な問題は、私はDisqus URLを取得する代わりにDisqus認証テキストを取得するように、転送が有効になっている「要求」を使用していたということでした。認証URLは、コンテンツではなくウィンドウに表示する必要があります。 CSRFの問題が修正されました。

次の問題は、getAuthorizationUrlが返すURLが悪いことです。それは 'nullhttps:...'という形式です。 「ヌル」がどこから来ているのか分かりませんが、それを取り除いてその問題を修正します。

これを行うには誰でも簡単に行うために、OAuth認証方法を含むDisqus NPMの光沢のある新しいバージョンがhttps://www.npmjs.com/package/disqusにあります。

関連する問題