マーチャントのアカウントからオンデマンドでデータを取得するアプリを構築します。
モデルをセットアップし、attr_encrypted gem をインストールしました。すべてが暗号化されて適切に保存されています。
トークンを取得して API に送信するメソッドを作成しましたが、復号化されたバージョンを送信する必要があります。トークンはユーザー固有であるため、それが何であるかはわかりません..
トークンの復号化されたバージョンを送信するにはどうすればよいですか?
私のコンソールで試しました..
x = Merchant.find(1)
x.encrypted_token
そして、それは暗号化されたバージョンをうまく返します..
しかし、私が試してみると:
x.token
コンソールには ArgumentError: must specify a :key と表示されます
環境変数として保存したもの..
だから私はこれを渡すと思いますが、どうやって??
私は自分のモデルにこれを持っています:
attr_encrypted :token, :key => ENV['token_key']
コメントからの更新
これは私のデータベースがどのように見えるかです:
"Merchant(merchant_identifier: string, name: string, encrypted_token: text,
marketplace: string, password_digest: string, email: string)"
そして、私は試しました
attr_encrypted :token, :key => 'token_key'
そしてそれは私に暗号エラーを与えました。figaro を使用して環境変数を保存しています..それで問題ないようです..
それを続けてください!!
私がirbでやっていることは次のとおりです。
x = Merchant.find(2)
x.encrypted_token # yields "n4gZVJ8DKfp+p..."
しかし、私がこれに従うと
x.token
私は得る:
ArgumentError: must specify a :key