首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 4设备不能登录

Rails 4设备不能登录
EN

Stack Overflow用户
提问于 2015-12-14 10:11:18
回答 1查看 151关注 0票数 0

我有一个rails 4应用程序,它使用devise进行用户身份验证。在我决定给"Devise::User“模型添加一个"admin”参数之前,一切都运行得很好。我添加了它,并创建了一个自定义用户控制器来合并我的表单,以更新字段。完成此操作后,我添加了更多属性。这就是我的应用程序开始表现不佳的地方。当我尝试使用before_action :authenticate_user!访问某个区域时,系统会将我发送到登录页面,这意味着我尚未登录。当我输入用户凭证并点击提交时,我会被发送到应用程序的root_path,没有成功(或失败)登录的通知,而不是我要去的地方。当我试图返回到限制区域时(现在我已经“登录”了),我又被重定向到登录页面。

在查看了所有这些之后,我发现devise实际上并没有登录,所以我在主页上添加了一个log_out按钮,看看是否可以注销。当我点击它时,我的日志显示为Filter chain halted as :verify_signed_out_user rendered or redirected。我不确定这是否是正常的(因为我现在不能检查)。

我完全不知所措,不知道该往哪里走。我还是个rails新手,所以解决方案可能就在眼前。

这是我的routes.rb

代码语言:javascript
复制
    Rails.application.routes.draw do
      devise_for :users, :controllers => { registrations: 'registrations' }
      resources :musics, :composers, :music, :welcome, :charges, :tracks, :books

      root 'welcome#index'

      get 'admin' => 'welcome#admin'
      get 'admin/music/:id/tracks' => 'welcome#tracks', as: :admintracks

    end

RegistrationsController.rb

代码语言:javascript
复制
    class RegistrationsController < Devise::RegistrationsController

      private

      def sign_up_params
        params.require(:user).permit(:email, :password, :password_confirmation, :admin, :fname, :lname, :company, :address1, :address2, :city, :state, :zip, :phone)
      end

      def account_update_params
        params.require(:user).permit(:email, :password, :password_confirmation, :current_password, :admin, :fname, :lname, :company, :address1, :address2, :city, :state, :zip, :phone)
      end
    end

我很感谢你的帮助。

编辑1:通过在我的root_page上放置一条<% if current_user %>Logged In<% end %>行,我确认它没有登录。通过表单登录后,它仍然不显示。然后我检查了我的日志,看看它为该日志提供了什么,我没有发现任何可疑的东西。

代码语言:javascript
复制
    Started POST "/users/sign_in" for ::1 at 2015-12-13 21:16:47 -0500
    Processing by Devise::SessionsController#create as HTML
      Parameters: {"utf8"=>"✓", "authenticity_token"=>"HgStdwJajEbJMKyBgSGTD7Omqvdw9g6gmZwbXEmGd4VRFJqcLlrzjDYAdAWo7VdhpXm7sbNbuFTcR6neJTVr/g==", "user"=>{"email"=>"[*MyEmail*]@gmail.com", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Log in"}
      User Load (0.8ms)  SELECT  "users".* FROM "users" WHERE "users"."email" = $1  ORDER BY "users"."id" ASC LIMIT 1  [["email", "[*MyEmail*]@gmail.com"]]
       (0.1ms)  BEGIN
      SQL (0.3ms)  UPDATE "users" SET "last_sign_in_at" = $1, "current_sign_in_at" = $2, "sign_in_count" = $3, "updated_at" = $4 WHERE "users"."id" = $5  [["last_sign_in_at", "2015-12-14 02:13:31.458050"], ["current_sign_in_at", "2015-12-14 02:16:47.893957"], ["sign_in_count", 27], ["updated_at", "2015-12-14 02:16:47.896163"], ["id", 1]]
       (1.1ms)  COMMIT
    Redirected to http://localhost:3000/
EN

回答 1

Stack Overflow用户

发布于 2015-12-14 10:32:36

在跳过相关问题后,我发现了一个(未被接受的)相关问题的答案,它解决了我的问题!在昨晚的前一次尝试中,我把session store domain弄乱了,显然从那以后就再也没有使用过任何与Devise相关的东西。也许这对其他人有帮助!

谢谢,@amit_saxena

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34258778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档