我有一個登錄燈箱,需要在用戶未登錄時顯示。燈箱完全在javascript,fancybox中實現,並且使用rails partials for html。如何檢查用戶是否已登錄javascript
我可以看到cookie在登錄時設置爲chrome,但document.cookie
似乎返回空白。原因可能已被解釋here
如何在javascript/erb中實現此目的。
我有一個登錄燈箱,需要在用戶未登錄時顯示。燈箱完全在javascript,fancybox中實現,並且使用rails partials for html。如何檢查用戶是否已登錄javascript
我可以看到cookie在登錄時設置爲chrome,但document.cookie
似乎返回空白。原因可能已被解釋here
如何在javascript/erb中實現此目的。
在後端處理此操作。如果你使用rails這樣做,一定要使用和濫用current_user
,因爲它將是你最好的朋友。
然後,你可以自由地有這樣的事情
<% if current_user %>
<p>Welcome <%= current_user.username %>!</p>
<% else %>
<p>Please <%= link_to 'sign in', login_path %></p>
<% end %>
Rails的會話,Ruby on Rails Tutorial
謝謝,我想在表單提交中顯示燈箱。這已經在工作。當用戶登錄時,我需要提交原始表單而不需要任何用戶交互。 ajax登錄調用確實添加了一個cookie。通過使用您提到的方法,我將不得不刷新頁面以知道用戶是否已登錄才能提交原始表單。 – ShaggyInjun
刷新頁面時,表單數據將丟失,除非我採用複雜的路徑將表單數據保存到瀏覽器內存,並在頁面加載時填寫表單。 如果我能夠檢查cookie,它會更容易。在項目中啓用休息。有沒有一個設計會議控制器的方法,我可以做一個Ajax調用來驗證用戶登錄? – ShaggyInjun
@ShaggyInjun好吧我想我知道你在問什麼。在隱藏燈箱之前,你是否檢查登錄憑證是否正確?如果是這樣,當你的程序響應(使用AJAX)「是的,這些憑據是正確的,」你也可以發送你想要的用戶數據,然後用JavaScript處理剩餘的數據。也許像'$('#welcome')。text(data.username);',如果你的燈箱是一個形式':remote => true',那麼你可以用'create.js.erb' '應用/視圖/ sessions'。這取決於您的應用程序的結構。 –
相同的方法,喬丹秤稱,但 使其更簡單... DRYing if @current_user.nil?
有沒有人真的有這個基於js的答案,不同於下面列出的答案? – lulalala
可能不可能。請參閱http://stackoverflow.com/a/29739169/6594668或使用cookie。 – prograils