注目キーワード
  1. Wordpress
  2. テーマ
  3. プラグイン
  4. SEO
  5. 集客

Local by FlywheelでOAuthやJWTがエラーを起こす場合の対処法

Local by FlywheelはWordPress開発環境の新定番として日本でも人気が出つつあるソフトである。先日のポッドキャストでコントリビューターデイの話題になったとき、Localについて触れたのだが、そこで話した「LocalってJWTとかでコケることあるよね」という話に反応があったので、個別のチップスとして切り出して紹介する。

LocalのサイトでJWTやOAuthが失敗する場合

JWT(ジョット)とはJSON Web Tokenの略であり、APIアクセスする際の管理者権限の証明としてよく使われる。典型的な利用方法としては、GCPやAWSなどのサービスを利用する際に利用する。

詳細は省くが、こうした認証においては、リクエストの有効期限を確かめるためにタイムスタンプが利用されている。「このリクエストの認証の有効期限は5分以内」といった類のチェック機構である。

ところがLocalのDockerコンテナは非常に薄い設定となっており、たとえばVimも入っていないし、ユーザーもrootログインしかできない。さらに、ntpdというサーバーの時刻合わせを行うツールも入っていない。すると、OSのスリープなどを繰り返しているうちに、この時間が少しずつずれていき、いつしかJWTやOAuthで定められた規定のタイムリミットをオーバーするようになってしまう。その結果、どんなリクエストを発行してもエラーとなってしまう。

これは想定外の挙動であるため、原因を特定するためにものすごくハマる。

右がMacで、左がLocalのタイムスタンプ。6分ずれている。ちなみに、ターミナルはhyperのポケモンテーマを利用している。

解決方法

解決方法は単純で、Localのすべてのコンテナを停止し、Localアプリ自体を再起動すること。これにより、時計が元に戻る。

筆者はLocalのフォーラムに要望を出しているが、採用されるかどうかは不明。

ハマるパターン

多くはクラウドサービスなどへのアクセス制御である。

  • WordPressでAWSのS3やCloudFrontなどで署名つきURLを利用してる場合
  • GCPのCloud EndpointsにJWTで署名してアクセスしようとしている場合
  • SNSログインなどでOAuthを利用している場合

こうした機能を作る人はあまり多くないと思うが、「ローカル環境でだけ動かない」という場合はタイムスタンプを疑ってみるのもよいだろう。

おまけ

Capital Pではタレコミから書いてほしい記事の内容なども募集している。最近、筆者はWordPressの何がわからないのかがわからなくなってしまってきているので、お気軽にリクエストをいただきたい。お役立ちコンテンツを世に発信して、筆者の無能感を解消する手助けをして欲しい。

[新装版]ピーターの法則――「階層社会学」が暴く会社に無能があふれる理由

[新装版]ピーターの法則――「階層社会学」が暴く会社に無能があふれる理由書籍

作者ローレンス・J・ピーター, レイモンド・ハル

クリエーター渡辺 伸也

発行ダイヤモンド社

発売日2018年3月24日

カテゴリー単行本(ソフトカバー)

ページ数248

ISBN4478103550

Supported by amazon Product Advertising API

投稿 Local by FlywheelでOAuthやJWTがエラーを起こす場合の対処法Capital P に最初に表示されました。

#wordpress #ワードプレス #SEO #集客

「Capital P」を閲覧する

最新情報をチェックしよう!
>WordPressに関連する情報まとめ

WordPressに関連する情報まとめ

ブログ / ホームページの価値の最大化をさせるCMS、WordPress(ワードプレス)。フリーのブログとは違い、いくらか敷居の高い印象がありますが、一つ一つクリアにしてみるときっとあなたもWordPressのパワーの恩恵に預かれると思います。当サイトを見て、まずはトライしてみましょう!

CTR IMG