gpt4 book ai didi

ruby-on-rails - 如何使用 Warden 实现 "forgot password"?

转载 作者:数据小太阳 更新时间:2023-10-29 09:03:29 25 4
gpt4 key购买 nike

在从Devise切换到直接使用的过程中Warden .

我怎样才能实现 Devise 开箱即用的“忘记密码”功能?

是否有 gem 可以将此添加到 Warden 上?

附言。不使用 Devise 的原因是因为需要一些定制,这使得破解 Devise 使其工作不值得。

最佳答案

不知道有没有 gem ,不过自己做也不会花太长时间。假设每个帐户都有一个电子邮件附加到它。有一个忘记密码按钮,链接到一个页面,用户将在该页面输入用户名或用户独有的任何信息,一旦用户提交表单。将新密码发送到那里的电子邮件。

一步一步:

  1. 在您的登录页面上创建一个忘记密码按钮,以链接到一个新的忘记密码页面。
  2. 为这个新的忘记密码页面制作路由、 Controller 操作。
  3. 在忘记密码页面上制作一个表单,其中包含有关用户的唯一信息。前任。用户名。此表单将是对 Controller 中操作的发布请求,该操作会将新密码通过电子邮件发送给具有此用户名的用户。

    这是我的一个样子:

    def emailor

    @user = User.find_by username: params[:user][:username]

    random_password = Array.new(10).map { (65 + rand(58)).chr }.join
    @user.password = random_password

    if @user.save
    UserMailer.reset_password_email(@user.email, random_password ).deliver
    flash[:notice] = "Email has been sent";
    redirect_to root_path
    end

    end
  4. 制作你的邮件。如果您不知道,本指南将介绍如何完成。 Mailers in Rails

关于ruby-on-rails - 如何使用 Warden 实现 "forgot password"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29620039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com