問題タブ [doorkeeper]
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.
ruby-on-rails - Doorkeeper 制限適用範囲
ドアキーパー プロバイダーがあり、すべてのアプリが使用できるわけではないスコープを追加する必要があります。トークンが要求できるスコープを、アプリケーションがアクセスできるスコープに制限したいと考えています。
たとえば、アプリケーション A はxyz
とのabc
スコープに「アクセス」できるアプリですが、アプリケーション B はスコープにしか「アクセス」できませんabc
。
アプリケーション B からのすべてのアクセス トークンはスコープを必要とする可能性がありますが、abc
スコープを要求できませんでしたxyz
。アプリケーション A からのアクセス トークンには、これらのスコープのいずれか (または両方) が含まれる場合があります。
アプリケーション B がスコープを要求しないようにする方法はありますxyz
か? または、これをどのように実装しますか?
どうもありがとう!
ruby-on-rails - Devise、RocketPants、Doorkeeper で API を作成するスキームが理解できない
私はウェブサイトを開発していて、バックエンド (rails) とフロントエンド (angularjs) を分離することにしました。JSON を介した認証を実装しようとするまでは、すべてうまくいきました。devise や doorkeeper を使って実装する方法についてはたくさんの資料を見つけましたが、まとめ方がわかりません。(APIはRocketPantsで実装)
私が気付いたことから、フロントエンドからログインを送信してinitを渡し、authtokenを取得する必要があります(ステップ1)。次に、すべての呼び出しで、他のデータとともにauthtokenを送信する必要があります(ステップ2)
ステップ 1: Doorkeeper が sign_in ページにリダイレクトします。( warden.authenticate! を使用して) 認証を処理するコントローラーになるように、コントローラーを変更する必要がありますか? その時点以降、Doorkeeper はどのようにして私がログインしていることを知るのでしょうか? (私にauthtokenを与えるために)
ステップ 2: Authtoken は、ユーザーごと、および API を使用するアプリケーションごとに個別ですよね? ですから、どのアプリケーションからのリクエストが来るのかをどうにかして特定する必要がありますね。"
注: バックエンドは API のみになるため、すべて JSON リクエストで処理する必要があります。しかし、利用可能なアプリケーションを変更するにはどうすればよいでしょうか? Doorkeeper にもう 1 つのカスタム コントローラーはありますか?
事前に感謝します。そのような質問があるのは私だけではないことを願っています =)
ruby-on-rails - 認証情報を使用して新しいユーザーを作成し、API で Doorkeeper を使用してそのユーザーのトークンを取得する
Doorkeeper によって保護された API を構築しています。
バックエンドで (パスワードを使用して) ユーザーを手動で作成し、次の内容を に投稿するとoauth/token
、Doorkeeper はユーザーのアクセス トークンを正常に生成し、それを返します。
ただし、サインアップフローを行う方法を頭に入れようとしています。
users/create
ユーザーとパスワードを作成する限り、うまくいきましたが、次のステップで Doorkeeper::AccessToken を生成し、それをクライアントに返す方法がわかりません。理想的には、 user#create アクションでユーザーを作成した後oauth/token
、ユーザーの名前とパスワードを使用して POST to にリダイレクトしますが、POST にリダイレクトできないことはわかっています。
Doorkeeper のソースを掘り下げてみましたが、この巧妙なミドルウェアのすべてに少し戸惑っています。これに関するアドバイスは大歓迎です!
ruby-on-rails - ドアキーパー取り消しトークン
アプリケーションに OAuth 2 を実装しています。すでにログイン/リフレッシュ トークンを持っていますが、ログアウトに問題があります。
Doorkeeper によって生成された次の一連のルートがあります。
私がやりたいことは、サーバーでトークンを取り消すことです。そのため、呼び出す必要があるサービスは「DELETE /authorize」ですよね? しかし、私はこのサービスを利用するためにさまざまな方法を試してみましたが、エラーが発生しただけです。
ところで、サーバーでトークンを取り消すのが正しいのか、それともアプリケーションからのみ削除するのが正しいのかわかりません。
PS: クライアントに iOS 7 で AFNetworking 2 を使用しています。
ruby-on-rails - resource_owner_id が設定されていません
API を保護するために Doorkeeper gem を使用しようとしています。
私のコードは次のようになります。
初期化子/ドアキーパー.rb
API に接続するために使用しているコマンドは次のとおりです。
... と ...
これは正常に機能しますが、私の問題は、返された Token オブジェクトに空のパラメーターがあるresource_owner_id
ことです (この列は、トークンの作成時に DB に入力されていません)。私が何を間違っているのか分かりますか?私はそれらのチュートリアルに従っています:
google-chrome - 最近の Chrome ビルドで壊れた Chrome 拡張機能の OAuth
私たちの Chrome 拡張機能は何ヶ月も問題なく動作していましたが、最近、oauth の失敗により機能しなくなりました。独自の oauth エンドポイントを (ドアキーパー経由で) 使用しています。挙動がおかしくて、拡張ボタンをクリックするとウィンドウ全体が最小化され、最前面に戻して oauth プロンプトを受け入れると、拡張ポップアップが画面上でフリーズし、タブを切り替えてもそこにとどまります。これは認証されず、エンドポイントへの後続の呼び出しでは、クエリ文字列に「access_token=undefined」が含まれています。タブのセット全体を閉じることが、フリーズしたウィンドウを取り除く唯一の方法です。
拡張機能 ouath はhttps://github.com/borismus/oauth2-extensionsからのものです。マニフェストの要件が異なるために、最近のバージョンの Chrome で同様の問題が発生したことを読んだことがあります。認証を完全に削除すると、拡張機能は正常に機能します。
これに対して何日も頭を悩ませてきましたが、どんな助けも大歓迎です。
更新: popup.html には、以下のコードを含む tracker.js というファイルが含まれていました。以下の私のコメントによると、それを削除するとフリーズの問題が修正されました。