ねこものがたり

いちにちいっぽ

Nerima.rb#2の振り返り

Nerima.rb#2を開催したので感想と次回へ向けての反省など

https://nerimarb.connpass.com/event/127975/ https://nerimarb.esa.io/posts/6

やったこと

  • rubyのTimeクラス、Datetimeクラス
  • require time
  • railsのtime,time_with_zone

良かったこと

  • 同じ会場だったので準備がスムーズだった
  • ロゴを作って頂いた!案内掲示にも使った
  • 殆ど前回と違う参加者だった
  • スキルが様々だった、多言語含めすごく詳しい人も初めて1,2年の人もいた

改善したいこと

  • 進行(一人で喋っているようになってしまう)
  • メソッドを全部追うことより深掘りすることに比重を追いたら良さそう
  • 自分のリーディング力の無さ
  • 和気あいあいさを増したいようなこのままでもいいような
  • 終わりにPR作ったり各自整理したりQAしたりする時間をつくるとどうかな

感想

自分のために始めたNerima.rbだけど、来てくれる人にとってよい場かどうかとても気になっていてそわそわしてしまいます。

1人でもやるぞと思っているのに申込状況とかキャンセルとかで動揺しててだめすぎるw 状況は本質ではないと思うので、今まで繋がれなかった人と知り合えたり、Rubyについて少しでも理解して楽しさが増していく場所が作れたらいいなと思ったことをブラさないようにして、地味でもいいので続けていこうと思います。

JWTについて調べた

業務でJWTを(他の人が)実装したんだけど、全然わからなかったので自分なりに調べてみたことをまとめます。

JWTとは

JSON Web Token。電子署名付きのURL-safeなJSONのこと。

URL-safeとは

とは?というのが雰囲気でしかわからない。urlに使うことができる文字列から成っているということと理解しています。ご存知でしたら教えてくださいー

クライアントとサーバー

JSON Web Token Introduction - jwt.ioでは認証と情報交換の2つのユースケースが書かれていますが、今回認証で使ったので認証を例にすると、クライアントとサーバーのやり取りはこのようになります。

Image from Gyazo

JWTの中身

①HEADER②Payload③Signatureの3つから成っていて、.で区切られています。

{ HEADER.Payload.Signature
 }

上の図で言うとサーバー側からクライエント側に送られるわけですが、暗号化されているので、見た目は訳がわからない感じの文字列です。

JSON Web Tokens - jwt.ioで暗号化のアルゴリズムとか.で分かれている様子とかデバッグできるので、触ってみると楽しいです。

HEADER

algアルゴリズム)とtypの2つの情報を含んでいるのが基本。typJWTが該当します。(他にはどのようなものがあるか別途調べておきたい)

Payload

payloadにメインとなる情報が含まれます。 RFC 7519 - JSON Web Token (JWT)あたりを読むとどういう項目が入るのか書いてあります。

Signature

暗号化とその復号のために秘密鍵・公開鍵を使用しますが、「これは正しい(秘密)鍵を使って暗号化した情報です」というのが保証されているのが電子署名の仕組み。 まず平文をダイジェスト値にたものを暗号化するという仕組みだそうです。

参考

RFC 7519 - JSON Web Token (JWT)

JWT(JSON Web Token)を使った認証を試みる | 69log

公開鍵暗号と電子署名の基礎知識 - Qiita

JSON Web Tokens - jwt.io

暗号化アルゴリズム - マイクロソフト系技術情報 Wiki