JWTこんにちは、サーバーサイドエンジニアの花田です。業務では主に管理画面系の開発をしています。今回はAPIにJWTを組み込んだ話を書こうと思います。JSON形式で通信を安全に行うための仕組みです。トークンeyJhbGciOiJIUzI1NiJ32eyJzdGFmZl9pZCI6IjYyNiIsImV4edI6MTU2OTQ5ODIwOH0.V7ahesLTgGSAC6352g6kVqr_jzhykV3Jc0UH32l9djgJWTの導入方法gemでインストールを行えば、JWTを入れることができます。業務ではbundleを使用しているので、bundle経由のコマンド例です。(POST)Vue.jsとRails間のJWTについてAPIを用いてDBから必要なデータを取得し、管理画面にデータを表示させたいAPIの例1.DBからデータを取得するAPIhttps://localhost/api/v1/samples処理の流れ(GET)RailsはsessionのユニークIDを元にJWTのエンコードを行うVuexにJWTトークンを保持するVue.jsは、VuexにあるJWTトークンをAPIに付与して実行するRailsはJWTトークンをデコードして以下のバリデーションを行うJWTトークンが正しい値であることsessionのユニークIDがユーザーのログイン情報と一致していることその後、Railsのバリデーションが通れば、無事管理画面にデータが表示されるようになります。実際のコードには、ユニーク値に「Rails.application.credentials.secret_key_base」を入れています。クラスからJWT処理を取り出して、各APIで必要なJWTをincludeする方法に変更しました。以下のように用途によってクラスを分けました。Authentication::Jwt::Outside::Headerこうすることで、親クラスにはJWTのコードがなくなり、各JWT間の依存もなくなりスッキリしました。まとめ外部サービスと連携して、認証機能を実装したことがなかったのでいい経験になりました。リファクタリングしたい箇所があるので、可読性をもっとあげていきたいと思っています。<前編>こんにちは、@binarytaです。私の加入しているプロジェクトで...2017-06-02Vue.jsでルーツ音楽診断ゲームを作ってみたこんにちは。フロントエンドエンジニアの田渕です。2015年4月...2016-11-25ChatWorkのメッセージをSlackに通知するBotを作ってみたこんにちは、入社1年目SEの佐藤です。今回はChatWorkの投稿を...2016-10-14GitLabのマージリクエスト時に自動でRubocopを走らせたいこんにちは、渡部です。(1)ABOUT株式会社アドウェイズのエンジニアによるブログです!このブログでは、アドウェイズのエンジニアがざっくばらんに技術のことや日常生活について書いていきますので、みなさんよろしくお願いいたします。アドウェイズ中途採用情報スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。