मेरे पास एक ऐसा एप्लिकेशन है जहां उपयोगकर्ता अपनी फर्म सबडोमेन में लॉग इन कर सकते हैं।रेल 3.2 सबडोमेन और devise
मैं उपयोग का उपयोग करता हूं। और यह कोड उपयोगकर्ता को रूट डोमेन को सबडोमेन में रीडायरेक्ट करता है।
def after_sign_in_path_for(resource_or_scope)
scope = Devise::Mapping.find_scope!(resource_or_scope)
subdomain_name = current_user.firm.subdomain
if current_subdomain.nil?
# logout of root domain and login by token to subdomain
token = Devise.friendly_token
current_user.loginable_token = token
current_user.save
sign_out(current_user)
flash[:notice] = nil
home_path = valid_user_url(token, :subdomain => subdomain_name)
return home_path
else
if subdomain_name != current_subdomain.name
# user not part of current_subdomain
sign_out(current_user)
flash[:notice] = nil
flash[:alert] = "Sorry, invalid user or password for subdomain"
end
end
super
end
यह क्रोम, फ़ायरफ़ॉक्स, ओपेरा और सफारी में सुपर काम करता है, लेकिन यह IE9 में काम नहीं करता है। मुझे कोई त्रुटि संदेश नहीं मिला है। लॉग को फॉर्म करें, मैं देखता हूं कि उपयोगकर्ता को साइन इन हो जाता है और जब उपयोगकर्ता होम पेज पर रीडायरेक्ट हो जाता है तो वह अनधिकृत होता है। क्या किसी के बारे में कोई विचार है कि क्या हो रहा है? लॉग फॉर्म करें।
Processing by SessionsController#create as HTML
Parameters: {"utf8"=>"✓",
"authenticity_token"=>"JaffZi9f+Uyovuya8wR2u7LjG9w/3wdUDqTqONt/kFM=",
"user"=>{"email
"=>"[email protected]", "password"=>"[FILTERED]", "remember_me"=>"0"},
"commit"=>"Sign in"}
User Load (0.0ms) SELECT "users".* FROM "users" WHERE
"users"."email" = ''[email protected]' LIMIT 1
(0.0ms) begin transaction
(1.0ms) UPDATE "users" SET
"last_sign_in_at" = '2012-03-02 20:46:06.658370',
"current_sign_in_at" = '2012-03-
02 20:56:29.481286', "sign_in_count" = 41,
"updated_at" = '2012-03-02 20:56:29.482286' WHERE "users"."id" = 1
[paperclip] Saving attachments.
(62.0ms) commit transaction
Firm Load (0.0ms) SELECT "firms".* FROM "firms" WHERE "firms"."id" = 1 LIMIT 1
Firm Load (0.0ms) SELECT "firms".* FROM "firms" WHERE "firms"."subdomain" = 'den' LIMIT 1
CACHE (0.0ms) SELECT "firms".* FROM "firms" WHERE "firms"."subdomain" = 'den' LIMIT 1
Redirected to http://den.lvh.me:3000/
Completed 302 Found in 182ms (ActiveRecord: 0.0ms)
Started GET "/" for 127.0.0.1 at 2012-03-02 21:56:29 +0100
Processing by PrivateController#statistics as HTML
Firm Load (0.0ms) SELECT "firms".* FROM "firms" WHERE "firms"."subdomain" = 'den' LIMIT 1
Completed 401 Unauthorized in 2ms
Started GET "https://stackoverflow.com/users/sign_in" for 127.0.0.1 at 2012-03-02 21:56:29 +0100
Processing by SessionsController#new as HTML
Rendered devise/_links.erb (2.0ms)
Rendered devise/sessions/new.html.erb within layouts/registration (13.0ms)
Completed 200 OK in 27ms (Views: 26.0ms | ActiveRecord: 0.0ms)
क्या आप इसे समझने के लिए समाप्त हुए? – Kirk
आपकी तैयार कुकी डोमेन क्या है? आईई शायद वाइल्डकार्ड कुकी गायब है? यह विषय आपको इस तरह के मामले में मदद कर सकता है: [लिंक] (http://stackoverflow.com/questions/4826670/rails-devise-setting-a-devise-cookie-to-persist-across- dififferent-subdomains) – HungryCoder
@ किर्क नहीं, लेकिन मुझे लगता है कि HungryCoder का लिंक ऐसा लगता है कि यह ठीक हो सकता है। –