実現したいこと
ユーザーIDに紐付いた暗号鍵を利用してアプリを作成した場合、どのようにすればRails的というか理想的なMVCモデルが構築ができるのでしょうか?
前提
- Deviseを利用してユーザー管理を行っています。
- ユーザーIDに紐付いた暗号鍵をyamlデータに保存しています。
- 暗号化、復号には、
ActiveSupport::MessageEncryptor
を利用します。(参考サイト①) - 多くのモデルで暗号化の必要があるカラムがあります。(個人情報や銀行口座情報などで必須条件)
実現したこと
モデルからコントローラーの変数(current_user.id)を取得。(参考サイト②)
その変数を基に、yamlに保存してある暗号キーを取得して、暗号化、復号を行いました。(参考サイト①)
気になったこと
参考サイト②で「少なくともRailsのルールを基準として考えると、モデルからコントローラーの変数を取得するというアプリのデザインがそもそも間違っている」という記載がありました。
その考え方は、なんとなく分かるのですが・・・
参考サイト
①暗号化・復号の手順(ActiveSupport::MessageEncryptor
利用)
A simple way to encrypt and decrypt in Rails 5
https://medium.com/@mayneweb/a-simple-way-to-encrypt-and-decrypt-in-rails-5-9a514645d066
②モデルからコントローラーの変数を取得する
Ruby on Rails - Access controller variable from model
https://stackoverflow.com/questions/2419120/ruby-on-rails-access-controller-variable-from-model
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/29 08:40
2019/05/29 10:03
2019/05/31 01:56