9

私は、デバイスを利用した Rails アプリ自体にアクセスする必要なく、ブラウザから直接連絡先を作成できるようにする chrome 拡張機能を構築しています。Contacts#Create には認証が必要なので、拡張機能から認証済みのリクエストを送信する方法を知りたいです。

devise TokenAuthenticatableを有効にしたので、ユーザーは認証トークンを持っています。Rails アプリの contact#create アクションに投稿するメソッドを拡張機能 js に作成しました。テストのために、私は自分の認証トークンをハードコーディングしましたが、これは機能しているようです。しかし、拡張機能はどのようにしてユーザーの認証トークンにアクセスできるのでしょうか? このトークンを Cookie に保存するのは正しくないようです。

chrome.cookies を使用して、何らかの形でアプリのセッション情報にアクセスして何かを行うことになっていると思います。しかし、ここでは sessionID しか取得できません。

どんな助けでも大歓迎です!

4

2 に答える 2

1

クロム拡張からではありませんが、ターミナルから動作する同様のものを構築していました。最終的には、devise をバイパスし、必要な 1 つの controller#action だけにユーザーがアクセスできるようにする独自のトークン認証を作成しました。そうすれば、トークンが盗まれた場合の被害を最小限に抑えることができます。

とにかく、ユーザーが Rails アプリ インターフェイス内でトークンを生成 (および再生成) できるようにし、最初の起動時に拡張機能がトークンを要求するようにします。トークン自体を localStorage に保存します。

于 2012-12-03T13:11:49.367 に答える
0

authentifiation_tokenアプリの Cookie に保存されていることも確認できます。

ここで説明されている方法を使用してこれを実現できchrome.cookies.getAll()ます - https://developer.chrome.com/extensions/cookies#method-getAll

于 2015-05-22T15:05:09.743 に答える