【问题标题】:devise invitable getting invalid token设计邀请获取无效令牌
【发布时间】:2014-03-18 00:42:11
【问题描述】:

我正在使用 Devise 和 Devise-invitable。但是,当我尝试接受邀请时,它说令牌无效。新设计在如何保存令牌方面存在问题...我知道这是导致问题的原因 (https://github.com/scambra/devise_invitable/issues/402)

但是,我仍然不确定如何修复它。创建者说使用@token ......但我不知道如何获得@token。这个变量从何而来?这是我目前所拥有的:

class Users::InvitationsController < Devise::InvitationsController
  private

  def invite_resource
    resource_class.invite!(email: params['user']['email'], company_id: current_user.company.id) do |u|
      # skip sending emails on invite
      u.invited_by_id      = current_user.id
      u.invited_by_type    = 'User'
      u.skip_invitation    = true
      u.invitation_sent_at = Time.now
    end
  end

  def accept_resource
    debugger
    resource = resource_class.accept_invitation!(update_resource_params)
  end

以及我正在使用的链接:

= link_to 'Accept invitation', accept_invitation_url('user', :invitation_token => @token)

以前我使用的是invitation.invitation_token 而不是@token,但我猜这不是散列版本?如何在上述接受链接中插入正确的版本?

【问题讨论】:

    标签: ruby-on-rails devise devise-invitable


    【解决方案1】:

    您的电子邮件链接看起来不错,因为@token 是由邮件程序生成的。如果你像我一样,你可能有一个无效的列类型。例如,我的invitation_created_at 是错误的类型,所以我进行了迁移以将其更改为日期时间:

    class ChangeUsersInvitationCreatedAtToDatetime < ActiveRecord::Migration
      def change
        change_column :users, :invitation_created_at, :datetime
      end
    end
    

    【讨论】:

      猜你喜欢
      • 2014-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多