Rails devise_token_auth gem,如何设置密码重置链接?

2024-01-11

我在使用这个 gem 的密码重置功能时遇到问题。https://github.com/lynndylanhurley/devise_token_auth https://github.com/lynndylanhurley/devise_token_auth

这是来自文档。

/password/edit     GET  

“通过密码重置令牌验证用户。此路由是目的地 密码重置确认的 URL。该路由必须包含 Reset_password_token 和redirect_url 参数。这些值将被设置 自动通过生成的确认电子邮件 密码重置请求。”

当用户忘记密码时,可以输入注册电子邮件,他们将通过电子邮件收到密码重置链接。

POST :https://example.com/api/auth/password https://example.com/api/auth/password

params = 电子邮件和重定向链接 (https://example.com/api/auth/password/edit https://example.com/api/auth/password/edit)

我可以通过电子邮件发送密码重置链接,但是当我单击该链接或电子邮件中的“更改我的密码”时,它会跳转到带有令牌的重定向地址。

它显示“您正在查找的页面不存在”。

这可能是路线错误或其他什么,但我不知道。我什至不确定是否应该为重定向链接设置“/password/edit”。

这是github的相关链接https://github.com/lynndylanhurley/devise_token_auth/issues/604 https://github.com/lynndylanhurley/devise_token_auth/issues/604

我是否遗漏了某些内容,或者我应该为重定向链接部分设置不同的地址?


如上所述,devise_token_auth 具有三个 API 调用来重置密码。

1. 用于发送密码重置电子邮件的 POST 调用

 POST /auth/password
 Params: 'email', 'redirect_url'

E.g.:

curl -v -H 'Content-Type: application/json' -H 'Accept: application/json' -X POST https://myapp.com/auth/password -d '{"email":"foo@gmail.com", "redirect_url": "https://myapp.com/auth/sign_in"}'

请注意,redirect_url给定的必须对应于您希望用户确认和重置密码的端点。

例如。如果想要重定向到 iOS 应用程序中的某个位置,请使用该应用程序方案中的 URLredirect_url定义。例如。在 iOS 上手动执行此操作:

curl -v -H 'Content-Type: application/json' -H 'Accept: application/json' -X POST https://myapp.com/auth/password -d '{"email":"[email protected] /cdn-cgi/l/email-protection", "redirect_url": "myappStoreAppName://auth/password/edit"}'

2. 用于验证密码重置令牌的 GET 调用(在电子邮件中单击)

GET /auth/password/edit
Params: 'password_reset_token', 'redirect_url'

E.g. via our iOS app would produce an email link like this: https://myapp.com/auth/password/edit?config=default&redirect_url=myappStoreName%3A%2F%2Fauth%2Fpassword%2Fedit&reset_password_token=Qv6mkLuoy9zN-Y1pKghB

如果这是来自网络应用程序,则“redirect_to”链接应指向一个表单,其中password and password_confirmation可以填写表格。如果密码重置电子邮件链接指向移动应用程序,则由该应用程序创建密码重置表单。

此步骤中最重要的是知道发出请求的客户端将返回一个Access-Token来自 Rails 应用程序的标头。

需要保存此访问令牌,因为客户端将在下一个请求中使用它来在用户更改密码时保持用户身份验证。

3. 更新用户密码的 PUT 调用

PUT /auth/password
Head: 'uid: VALUE', 'client: VALUE', 'access-token: VALUE', 'token-type: Bearer'
Params: 'password', 'password_confirmation'

请注意需要为此 PUT 调用提供的 HEAD 值。这些确保我们(现在已通过身份验证的用户)有权执行密码更改,并确保我们的用户即使在更改密码后也可以继续保持身份验证。

例如。通过卷曲:

curl -v -H 'Content-Type: application/json' -H 'uid: [email protected] /cdn-cgi/l/email-protection' -H 'client: U9FIDbiDbYVulsi1dBpxOQ' -H 'access-token: JbGQi97FTAwsW4n6SZ9aYQ'  -H 'Accept: application/json' -X PUT https://myapp.com/auth/password -d '{"password": "foobar", "password_confirmation": "foobar"}'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails devise_token_auth gem,如何设置密码重置链接? 的相关文章

  • 多重要求和允许强参数rails 4

    在下面的情况下 我尝试使用强参数 我想要求email address password并允许remember me fields 但像下面这样使用它只允许最后一行在方法示例中 在下面的情况下 它只需要params permit rememb
  • 如何使用 Rspec 测试具有嵌套路由的控制器?

    我有 2 个使用轨道脚手架生成器创建的控制器 我希望它们嵌套在一个名为 demo 的文件夹中 所以运行 rails g scaffold demo flows rails g scaffold demo nodes 然后我决定将节点嵌套在流
  • (Rails) Assert_Select 的烦人警告

    有谁知道如何让assert select在rake测试期间不输出所有那些讨厌的html警告 你知道 就像这样的东西 ignoring attempt to close body with div opened at byte 1036 li
  • 如何从 ruby​​ 中的字符串中删除所有非数字?

    用户输入数字的形式如下 1 800 432 4567 800 432 4567 800 432 4566 800 432 4567 1 800 432 4567 800 432 4567 我希望所有这些都变成没有特殊字符的剥离版本 例如18
  • Rails:named_scope、lambda 和块

    我认为以下两个是等效的 named scope admin lambda company id conditions gt company id company id named scope admin lambda do company
  • 即使在急切加载之后,belongs_to 关联也会单独加载

    我有以下关联 class Picture lt ActiveRecord Base belongs to user end class User lt ActiveRecord Base has many pictures end 在我的
  • 已定义方法的 Ruby 钩子?

    我一直在谷歌上搜索这个问题 但找不到答案 这让我认为答案是否定的 但我想我会在这里问 以防有人确切知道 Ruby 是否有一个钩子来定义方法 即在模块或类上 如果没有 是否有人足够熟悉该实施的情况main对象以了解它到底如何将方法复制到Obj
  • Rails 4 应用程序...在开发环境中,除非刷新页面,否则 javascript 不会触发

    所以我的第一个rails4应用程序遇到了一个奇怪的问题 除非我重新加载页面 否则我的页面javascript不会触发 对于我的 asset pipeline JS 和 content for JS 来说都是如此 在我的 assets jav
  • 使用 rspec 测试嵌套路由

    我正在尝试使用 rspec 测试路由 以下给出了 预期块返回真值 的错误 我不确定我错过了什么 通过浏览器我可以发布到这个网址并且成功 有任何想法吗 谢谢 Routes resources forum topics do resources
  • Bundle 说 gem 丢失了 - 但事实并非如此?

    背景 我正在维护contentRuby On Rails 站点 但我确实没有 Rails 的经验 当尝试运行 Rails 服务器时 rails s我明白了 在任何来源中均找不到 activesupport 3 2 0 Run bundle
  • 来自控制器的 Rails 验证

    有一个联系页面 可以输入姓名 电话 电子邮件和消息 然后发送到管理员的电子邮件 没有理由将消息存储在数据库中 问题 如何 在控制器中使用 Rails 验证 根本不使用模型 或者 在模型中使用验证 但没有任何数据库关系 UPD Model c
  • 存根和 rspec 旧语法的问题

    我正在编写一些代码并使用 rspec 但收到警告 提示语法已过时 我不太清楚应该如何编写它 it should calculate the value correctly do mock cards Card new clubs 5 Car
  • RoR - Rails 中的大文件上传

    我有一个 Rails Web 应用程序 允许用户上传视频 视频存储在 NFS 安装的目录中 当前的设置适用于较小的文件 但我也需要支持大文件上传 最多 4GB 当我尝试上传 4GB 文件时 它最终会发生 但从用户体验的角度来看很糟糕 上传开
  • 将rails_admin 与rails_api 结合使用

    我最初将此发布为Rails api GitHub 上的问题 https github com sferik rails admin issues 2617 但由于不活跃 我现在将其发布在这里 我正在尝试使用rails admin使用 Rai
  • 如何从 Ruby 中的特定相对路径加载文件?

    我正在制作一颗供内部使用的宝石 在其中 我从另一个目录加载一些 YAML in
  • 如何在 Capybara 中 POST 到 URL?

    刚刚从 Cucumber Webrat 切换到 Cucumber Capybara 我想知道如何将内容 POST 到 Capybara 中的 URL 在 Cucumber Webrat 中我能够执行以下步骤 When I send to d
  • Heroku Rails 应用程序级别不记录日志

    我在 Heroku 上有一个 Rails 应用程序 它没有在应用程序级别进行日志记录 当前版本 红宝石1 9 3 导轨3 1 3 在 config environment development rb 中有以下几行 config logge
  • 仅针对 Rake 任务运行初始化程序

    我希望在执行 Rake 任务时运行某个初始化程序 但在运行 Rails 服务器时不运行 区分 Rake 调用和服务器调用的最佳方法是什么 Rake 允许您指定任务的依赖关系 最好的建议操作是将特定于 rake 的初始化放入其自己的任务中 而
  • 使用 ruby​​ 调整动画 GIF 图像的大小?

    我正在尝试将 GIF 图像调整为不同的尺寸 我在 ruby 中使用 RMagick 库 但对于某些 gif 图像 即使我缩小 GIF 的大小 文件大小似乎也会增加 我正在以相同的纵横比调整图像图像的大小 这是我的代码 require rma
  • 将查询字符串参数作为表单发布的一部分发送

    有没有办法捕获查询字符串并将其作为表单帖子的一部分发送 我正在使用 Rails 2 3 5 我的用户所在的页面有多个查询字符串参数 在此页面上 他们将提交一份表格 在接收帖子的操作中 我想知道这些查询字符串参数是什么 显然 它们不是作为邮件

随机推荐

  • 了解 PHP 中的输入转义

    一直让我困惑的一件事是输入转义以及是否受到保护以免受 SQL 注入等攻击 假设我有一个表单 它使用 HTTP POST 将数据发送到 PHP 文件 我在输入字段中输入以下内容并提交表单 Hello said Jimmy O Toole 如果
  • 通过 KeyChain 保存和检索值

    我正在尝试存储一个整数并使用 KeyChain 检索它 这就是我保存它的方式 func SaveNumberOfImagesTaken let key IMAGE TAKEN var taken 10 let data NSKeyedArc
  • AngularJS md-tabs 的更改索引根本没有效果

    在我的 Angular 应用程序中 我有一个 md tabs 其 md selected 指令绑定到我的控制器中的属性 我想将当前选项卡更改为索引由 ng click 模板中其他位置调用的函数设置的选项卡 我是这样做的 div div
  • 使用 Retrofit 2 从响应 JSON 获取单个 JSON 属性值

    我正在使用 Retrofit 库 撰写本文时版本为 2 0 2 我正在对一项响应大型 JSON 对象的服务进行 GET 调用 但我只对其中的一个键 值对感兴趣 我怎样才能得到这个而不是编写一个与 JSON 响应匹配的全新 POJO 类 例子
  • GC 调优 - 防止 Full GC

    我试图避免 Full GC 来自下面的 gc log 示例 在生产中的 Tomcat 中运行 Grails 应用程序 关于如何更好地配置 GC 有什么建议吗 14359 317 完整 GC 14359 317 CMS 3453285K gt
  • GCM 与 PHP(谷歌云消息传递)

    Update GCM https developers google com cloud messaging 已弃用 请使用FCM https firebase google com docs cloud messaging 我怎样才能整合
  • 从 C#.NET 调用非托管 DLL 所需的教程

    我有一个来自供应商的 DLL 我需要从 C 调用它 我知道 C 数据类与 C 数据类型不直接兼容 因此 鉴于我有一个接收数据并返回 字符串 的函数 像这样 string answer CreateCode2 int string1 uint
  • 为 Info.plist 提供自定义变量

    在 Xcode 中 您可以编辑应用程序的 Info plist 并且您将看到许多动态插入到 plist 中的变量 在下面的屏幕截图中 您可以看到例如 EXECUTABLE NAME 产品捆绑包标识符 产品名称 我的问题 如何创建自己的变量以
  • git-cat-文件输出

    当我在提交上运行 git cat file batch 时 它输出 缺少 但提交确实存在 为什么会发生这种情况 当使用 t 开关运行 cat file 时 它 只输出 commit 这正是我所期望的 谁能解释一下吗 我是 git 新手 谢谢
  • 如何将 html 文本框值传递给 javascript 函数

    我有一个 HTML 文本框 用户将在其中输入一些我想要传递给 JavaScript 函数的字符串
  • 如何构建 VB6 控制台应用程序

    我做了一些谷歌搜索来尝试回答这个问题 但即使在那之后我也不太清楚一些事情 是否可以从 VB6 创建控制台应用程序 我有一个 VB6 应用程序 它不显示窗口 我一直以为它是一个控制台应用程序 但是 我希望能够从其中使用 Windows API
  • Ansible with_subelements

    我很难理解 ansible with subelements 语法的逻辑 with subelements 到底做了什么 我在这里查看了有关 with subelements 的 ansible 文档https docs ansible c
  • 如何为在 Xcode 中构建和调试的 macOS 应用程序启用完全磁盘访问

    我有一个可以访问系统文件的应用程序 当我构建并存档应用程序时 我可以将该应用程序拖到 设置 gt 安全和隐私 gt 隐私 gt 完整磁盘访问 中 并授予其完全权限 但是 当使用 Xcode 构建应用程序时 如何启用此功能 我不知道 Xcod
  • 如何使用 SVN 忽略目录?

    我刚刚开始使用 SVN 并且我有一个在源代码管理下不需要的缓存目录 如何使用 SVN 忽略整个目录 文件夹 我在用Versions https en wikipedia org wiki Comparison of Subversion c
  • PyCharm 有变量浏览器吗

    I recently changed from Spyder to PyCharm as a Python IDE In Spyder I have often used the variable explorer feature see
  • 如何动态添加TextView到ListView

    实际上 在我的应用程序中我想插入TextView in the ListView动态但我该怎么做呢 我不知道 我将我的代码发送到我使用的地方textView我想插入ListView动态地 有人可以向我推荐吗 如果可以的话可以举例说明 我当前
  • 如何使用 jQuery DataTables 捕获选定行中的数据

    我有这个数据表设置 document ready function RectifiedCount dataTable bJQueryUI true bProcessing true aLengthMenu 10 25 50 1 10 25
  • 在vba中删除字符串开头和结尾的空格

    我编写了这个函数来删除字符串开头和结尾的空格 你知道为什么它不起作用吗 Public Function PrepareString TextLine As String Do While Left TextLine 1 Delete any
  • Rails 入门教程:5.7 显示帖子 -- 无禁止属性错误

    我一直在关注这个 Rails 教程 http guides rubyonrails org getting started html http guides rubyonrails org getting started html 第 5
  • Rails devise_token_auth gem,如何设置密码重置链接?

    我在使用这个 gem 的密码重置功能时遇到问题 https github com lynndylanhurley devise token auth https github com lynndylanhurley devise token