Sinatra フレームワークを使用して、ログイン用のセッションを必要とする非常に単純な Web アプリを作成しています。
私は問題なくログインできますが、友人がサイトにアクセスすると、私としてログインします。友達登録してもらいました。サイトに再度アクセスすると、彼女としてログインしていました!! 私たちはさまざまなデバイスで 3000 マイル離れています。
これが私のログインコードの要点です..
require 'rubygems'
require 'sinatra'
# I have tried enabling/disabling the :session_secret
# set :session_secret, 'my_secret'
enable :sessions
before '*' do
begin
User.login(User.find(session[:me])) if session[:me]
end
end
post '/login' do
user = User.find_by_email!(params[:email]).authenticate!(params[:password])
session[:me] = user.id
User.login user
200
end
これをラックアップファイルに追加してみました
use Rack::Session::Cookie,
:key => 'my_app_key',
:path => '/',
:expire_after => 14400, # seconds
:secret => 'secret_stuff'
この問題は、本番環境と開発環境の両方にあります。
Sinatra のドキュメントでは、 http: //www.sinatrarb.com/faq.html#sessions 以外の構成は推奨されていませんenable :sessions