通过url授权

问题描述 投票:0回答:2

假设我有一个帖子应用程序。有一个表格,任何人都可以填写标题、文本、电子邮件和提交按钮等字段。无需注册。

提交表格后,应对帖子进行审核。如果获得批准,则会出现在主列表中。

表单提交并获得批准后,用户会收到一个用于编辑帖子的链接(链接发送到用户的电子邮件)。 -- 如何执行此操作?

UPD

问题不是如何审核或验证帖子/usr 而是如何给他一个仅编辑他的帖子的链接

ruby-on-rails ruby authorization
2个回答
3
投票

每当创建用户记录时,您都可以轻松生成一个与记录绑定的令牌,如下所示:

在用户.rb中

before_save :generate_token

def generate_token
  self.token = SecureRandom.hex(6)
end

然后在向用户提交注册确认链接时,您可以这样做:

link_to "Validate account", validate_user_path(token: user.token)

以及您的 UsersController 的示例

def validate
  user = User.find_by_token(params[:token])
  if user
    user.update_attributes(validated: true)
    flash[:notice] = 'User succesfully validated.'
  else
    flash[:error] = 'Couldn't find user with token'
  end
end

2
投票

简单:

  1. 保存帖子时生成一个唯一的令牌(例如
    SecureRandom.hex
    )并将该令牌发送给用户。
  2. 向您的应用程序添加新路线。当用户使用令牌 (
    /posts/verify/:token
    ) 请求该 URL 时,让控制器查找具有匹配令牌的帖子。找到后,将帖子上的
    verified
    布尔值设置为
    true
© www.soinside.com 2019 - 2024. All rights reserved.