0
マルチユーザのRails 4.2アプリケーションでは、ユーザがログインするときにユーザトークンを保存する必要があります。ここでは2つの方法をルビー糸でUser
モデル:ログインユーザーは、彼/彼女のトークンが@user.current_token = token
によって割り当てられた場合Rubyスレッドを使用したマルチユーザのRailsアプリケーションにユーザトークンを保存
class User < ActiveRecord::Base
def self.current_token=(token)
Thread.current[:current_token] = token
end
def self.current_token
Thread.current[:current_token]
end
end
(トークンが生成されていると仮定)。後期アプリで、current_token
はUser.current_token
によって取得することができ、私はスレッドをルビーに新しいですし、確認するために物事のカップルがあります。
1. is token above thread safe and will never be changed (by another user, or overwritten by another user's token) during the `@user`'s session lifetime?
2. is `User.current_token` available everywhere inside the Rails app (as long as `User` is accessible)?
しにくい
私はあなたがここで達成しようとしていることについてもう少し理解する必要があります。この場合、トークンを格納する目的は何ですか? – ianks
Webサーバが独自のスレッドローカルをクリーンアップし始めるのは悪いことです。トークンは、ユーザーをグループからグループに区別するために使用されます(会社と言う)。ユーザー固有のものではなく、グループ固有のものです。トークンは、特定のグループに属するモデルの情報を検索するために使用されます。 – user938363