Upgrade to Pro — share decks privately, control downloads, hide ads and more …

json型を用いたユーザー権限設計

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for いかのこ いかのこ
January 24, 2024
280

 json型を用いたユーザー権限設計

Avatar for いかのこ

いかのこ

January 24, 2024

Transcript

  1. 2 アジェンダ
 1. 自己紹介
 2. json 型の扱い
 3. 前提・よくある設計
 4.

    設計
 a. DB
 b. DB - コード間
 c. コード
 5. 何が変わった?
 6. 結論

  2. 15 設計 - DBとコード間
 DB → コード - JSON 型

    から list<string> に変換
 コード → DB - list<string> から JSON 型 に変換
 ※ 参考 - Laravel の場合 
 Cast を作成して roles カラムに紐付けを行う必要があります 
 ※ 参考 - MySQL で json 型を扱うときの注意点 
 保存時に utf8mb4 に変換されるので、必要に応じてエンコード・デコードをする必要があります 
 詳細: https://dev.mysql.com/doc/refman/8.0/ja/json.html#json-values

  3. 16 設計 - コード
 権限一覧を enum として定義
 権限名を定義 認可の判定 "role_name"

    in user.roles で判定
 FE からのバリデーションチェック list<string> として受け取る
 enum で定義した権限名以外があった時はエラーを投げる