graphqlクライアントの Altairでトークン認証を行う方法
こんにちは!kossyです!
さて、今回はgraphql-ruby + Rails APIモードでdevise_token_authを用いてトークン認証する開発において、
Altairを使ってトークン認証をパスする方法についてブログに残してみたいと思います。
環境
Rails 6.0.3.4
Ruby 2.6.3
MacOS Catalina
なお、devise + devise_token_auth で Userモデルを作成し、
CORSの設定やマイグレーション周りの設定が済んでいるものとします。
devise + devise_token_auth のセットアップ手順はこちらの記事が詳しかったです。
トークン認証だとgraphiql使えない
トークン認証を利用している時にgraphiqlを使う方法をググってもHackしたやり方しか出てこなかった(jsでXHR送るみたいな、、、)ので、
Altairを使って認証をパスするようにします。
Altairのダウンロードページはこちら
まず、curlでログインのリクエストをして認証トークンを取得します。(Userは作成されているものとします。)
$ curl -i localhost:3000/auth/sign_in -X POST -d '{"email":"tanaka@example.com", "password":"test1234"}' -H "content-type:application/json" HTTP/1.1 200 OK X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1; mode=block X-Content-Type-Options: nosniff X-Download-Options: noopen X-Permitted-Cross-Domain-Policies: none Referrer-Policy: strict-origin-when-cross-origin Content-Type: application/json; charset=utf-8 access-token: 7VQ68wVMh8bPUN5ckr0CfQ token-type: Bearer client: NihWpbgns0SDpI3HURikfw expiry: 1609249216 uid: tanaka@example.com ETag: W/"3805fe2871c8a4277c3d9174dcd5c249" Cache-Control: max-age=0, private, must-revalidate X-Request-Id: ecb32107-da6b-4bbe-86e9-678dcc01cf55 X-Runtime: 1.022058 Vary: Origin Transfer-Encoding: chunked
ダウンロードできたら、Altairを開いて、
左上のAltairのアイコンの下のマークをクリックしてください。
グレーアウトしてモーダルが表示されるので、以下のようにkeyとvalueを入力します。(valueは先ほどcurlで叩いたレスポンスヘッダーの値を入れてください)
この状態でリクエストを投げると、認証をパスできます。
勉強になりました。