小编bri*_*les的帖子

Rails 4 devise_invitable邀请令牌无效

我一直在关注Ryan Boland优秀的Rails多租户教程,但是遇到了devise_invitable.我在用...

Rails 4.1.5 
devise 3.3.0  
devise_invitable 1.3.6
Postgresql
Run Code Online (Sandbox Code Playgroud)

我在选定的子域(mysubdomain.lvh.me:3000)上创建了一个新帐户和用户/帐户所有者,我可以从中发送用户邀请.我在隐身Chrome会话中打开邀请链接,以确保我没有登录或有任何当前会话.点击邀请链接后,我被重定向到登录页面(mysubdomain.lvh.me:3000/users/sign_in)并看到一个闪光通知:"提供的邀请令牌无效!"

我正在使用一个非常简单的邮件程序视图(app/views/devise/mailer/invitation_instructions.html.erb)...

<%= link_to 'Accept invitation', accept_invitation_url(@resource, :invitation_token => @token) %>
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我保证的@token使用,如所描述这里.

创建邀请后,我确认邀请令牌已保存到数据库中(在本例中为hey@test.com - d1801fd8df78bd8cd125d5d8091fdc6a72c8f8faf4136cb282d497ec612195e9).我已经确认这符合接受请求时邀请查找的令牌(见下面的跟踪).但是,它会重定向到用户登录页面而不是完成注册,并且还会在跟踪日志中显示"过滤器链暂停为:resource_from_invitation_token呈现或重定向".在此交易之后,用户最终仍未确认.

关于我在这里可能出现什么问题的任何想法?我在下面包括日志,我的应用程序控制器和我的设计配置......

以下是邀请创建的跟踪日志:

Started POST "/users/invitation" for 127.0.0.1 at 2014-09-07 01:28:33 +0800
Processing by Devise::InvitationsController#create as HTML
  Parameters: {"utf8"=>"?", "authenticity_token"=>"BiIQ95wwdQz3CJ0+OoLOE9xHHvxhloHsRHrxsqf1D2Q=", "user"=>{"email"=>"hey@test.com"}, "commit"=>"Invite User"}
  User Load (4.1ms)  SELECT  "users".* FROM "users"  WHERE "users"."id" = 1  ORDER BY "users"."id" ASC LIMIT 1
  Account Load (0.4ms)  SELECT  "public"."accounts".* FROM "public"."accounts"  WHERE "public"."accounts"."subdomain" = 'mysubdomain' LIMIT 1 …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails multi-tenant devise ruby-on-rails-4 devise-invitable

5
推荐指数
1
解决办法
2158
查看次数