私はユーザーがログインする必要があり、特定のページに上陸する必要があります。レールでIDを暗号化および復号化する方法は?
基本的に、ユーザーは電子メールでリンクを取得し、そのリンクをクリックすると、システムにログインして特定のページに移動します。現在、レコードID(ユーザーID)を使用してこの機能を実装しています。
URLは次のようになります。
localhost:3000/details?user_id=412
def details
@user = User.find(user_id)
signin(@user)
end
上記のURLのため、誰でもIDを変更して他のユーザーアカウントにランダムにアクセスできます。私は、このIDをURLで暗号化し、コントローラのアクションで私はそれを復号化したい。私は、このアクションだけを実装したいアプリケーションからこの暗号化を欲しません。例えば
:
localhost:3000/details?user_id=SnrIcaMA8rikrnNX6RRKNw
def details
@user = User.find(decrypt(user_id))
signin(@user)
end
これは誤ったUUIDの使用であり、あくまでもセキュリティで保護されていると言います。 UUIDは、dbの複製に関するいくつかの問題を解決する数値IDの代替手段です。彼が使用しなければならないのは、IDと改ざん可能なトークンです。 – max