紙一重の積み重ね

35歳のエンジニアがなれる最高の自分を目指して、学んだことをこつこつ情報発信するブログです。

【Rails5 + Postgres10】pgcryptoを使ってuuidを実装する方法

f:id:yokoyantech:20190121102136p:plain

やりたいこと

URLにidを使っていると、値を変更して他のユーザの情報が見れたり、データ数の推測ができてしまう。これを避けたい。

https:example.com/user/1/hoge

ではなく、

https:example.com/user/76a049b8-d280-49e8-917f-d7b28107c660/hoge

というようなuuidを使いたい。

動作環境

  • AWS RDS for PostgreSQL10
  • Rails5.2

事前準備

  • RDSにてpgcryptoを生成する
CREATE EXTENSION pgcrypto;
  • 以下のようなストアドができればOK image

実装

  • application.rbに以下を追加する
config.generators.orm = [:active_record, primary_key_type: :uuid]

データ登録

seedなどでデータ登録を行えば、uuidに値が入る。