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

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

いかのこ
January 24, 2024
130

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

いかのこ

January 24, 2024
Tweet

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 で定義した権限名以外があった時はエラーを投げる