Ruby on rails 如何使用Desive_auth_token gem使用rails api应用程序获取重置密码
我制作了一个新的rails api应用程序,其中集成了Desive_auth_token。注册时,忘记密码正在工作。但无法获得重置密码来工作 邮件中发送的确认url给出成功:错误响应 下面是确认url 这是重置电子邮件的服务器日志 在2015-09-24 14:41:21+0530为::1启动GET/auth/password/edit?config=default&redirect\u url=foo&reset\u password\u token=[FILTERED] DevisionTokenAuth::PasswordsControlleredit as处理/ 参数:{config=>default,redirect\u url=>foo, 重置\u密码\u令牌=>[FILTERED]}不允许的参数:config, 重定向\u url用户加载0.2ms从用户中选择用户。* users.reset\u密码\u令牌= “0b3dfdf3a80dce289df8c2cb16c528614b302534264e85e747c4f6b51583da15” 按用户订购。id ASC限制1已完成404未在5毫秒内找到 视图:0.3ms |活动记录:0.2ms 这是用密码发送的确认电子邮件 重置 DevisionTokenAuth::PasswordsController创建为/参数: {电子邮件=>user@user.com,重定向_url=>foo}未经允许 参数:重定向\u url不允许参数:重定向\u url用户 加载66.5ms从二进制uid所在的用户中选择用户。*= 'user@user.com“和提供商='email'用户订单。id ASC限制 1用户加载9.8ms从用户中选择用户。* users.reset\u密码\u令牌= “0b3dfdf3a80dce289df8c2cb16c528614b302534264e85e747c4f6b51583da15” 按用户订购。id ASC限制1 0.1ms开始SQL 17.7ms 更新用户设置重置密码令牌= ‘0b3dfdf3a80dce289df8c2cb16c528614b302534264e85e747c4f6b51583da15’, 重置密码发送地址='2015-09-24 08:34:05',更新地址= “2015-09-24 08:34:05”其中users.id=6 63.9ms提交 提供 /home/anjan/.rvm/gems/ruby-2.2.3/gems/designe\u token\u auth-0.1.34/app/views/designe/mailer/reset\u password\u instructions.html.erb 16.2ms 设计::Mailerreset\u密码\u说明:在中处理出站邮件 424.3ms 发送邮件至user@user.com64.4ms日期:2015年9月24日星期四14:04:06 +0530发件人:account@qzick.com答复:account@qzick.com致:user@user.com消息ID: 主题:重置 密码说明Mime版本:1.0内容类型:text/html; charset=UTF-8内容传输编码:7比特电子邮件:user@user.com 提供者:电子邮件重定向url:foo客户端配置:默认 你好user@user.com! 有人请求链接以更改您的密码。你能行 这是通过下面的链接 改变 我的密码 如果您没有请求,请忽略此电子邮件。您的 在您访问上面的链接并创建新密码之前,密码不会更改 一个 在979ms视图中完成200 OK:0.6ms |活动记录:158.1ms 伙计们会很感激你的帮助。 即使有任何问题,通过邮件发送的令牌也与生成的令牌不同。?是这样吗 下面是我的用户模型 {代币=>2a$10$l766Mu/s8IUIHi9r3sz40ODQk2R.YDo283JQ.82LIJB3FJ5UNQGQ,到期=>1444283710},H2CQP2KIT56BYKQXP1HGA=>{代币=>2a$10$upMCA8ZKLXvq9VjVaz2Vp.SZU7ZR2STCFRXWNG4WC2GQRW9SIW,到期=>1444293849},创建时间:2015-09-24:05:10,更新时间:2015-09:08:44} 下面是我的用户模型文件Ruby on rails 如何使用Desive_auth_token gem使用rails api应用程序获取重置密码,ruby-on-rails,ruby,authentication,devise,rails-api,Ruby On Rails,Ruby,Authentication,Devise,Rails Api,我制作了一个新的rails api应用程序,其中集成了Desive_auth_token。注册时,忘记密码正在工作。但无法获得重置密码来工作 邮件中发送的确认url给出成功:错误响应 下面是确认url 这是重置电子邮件的服务器日志 在2015-09-24 14:41:21+0530为::1启动GET/auth/password/edit?config=default&redirect\u url=foo&reset\u password\u token=[FILTERED] DevisionTo
class User < ActiveRecord::Base
# Include default devise modules.
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,
:omniauthable
include DeviseTokenAuth::Concerns::User
#Deleted ":confirmable," from above
end
我的PasswordController文件如下所示:
class PasswordController < ApplicationController
config.action_controller.action_on_unpermitted_parameters = :log
end
我也面临着一些疯狂的困难。下面是我要做的,让它与AngularJS前端和Rails后端一起工作: 覆盖密码控制器的创建、更新、编辑和重置后\u密码\u路径\u 对于create和update函数,主要的问题是我需要它来呈现一个json响应,因此它说的是respond_with resource,我改为呈现json:resource,status:,&&return,您可以将资源和状态更改为应用程序所需的状态,与render方法相同 对于编辑,我从电子邮件中抓取重定向URL并简单地重定向到params[:redirect\u URL],而不是使用after\u sending\u reset\u password\u instructions\u path\u进行编辑 我在重置密码后更改了路径,以重定向我希望用户登录的位置 我还必须更改reset_password_instructions.html.erb模板。包含以下内容的编辑\密码\ url的行:
我希望这有帮助 如果可能的话,你能发布你的用户模型文件吗?要检查指定的设计选项是否正确…@MarcoSandrini请检查我是否编辑了问题并在底部包含了我的用户模型文件。非常感谢您的帮助OK,现在我们需要对用户表进行更彻底的转储,因为从您发布的内容来看,用户表似乎不包含重置\u密码\u令牌列…@MarcoSandrini已在底部添加了我的schema.rb文件。请看一看。再次谢谢你
最后,一切看起来都很好。你检查过这个问题吗?
ActiveRecord::Schema.define(version: 20150921074353) do
create_table "users", force: :cascade do |t|
t.string "provider", limit: 255, default: "email", null: false
t.string "uid", limit: 255, default: "", null: false
t.string "encrypted_password", limit: 255, default: "", null: false
t.string "reset_password_token", limit: 255
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
t.integer "sign_in_count", limit: 4, default: 0, null: false
t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at"
t.string "current_sign_in_ip", limit: 255
t.string "last_sign_in_ip", limit: 255
t.string "confirmation_token", limit: 255
t.datetime "confirmed_at"
t.datetime "confirmation_sent_at"
t.string "unconfirmed_email", limit: 255
t.string "name", limit: 255
t.string "nickname", limit: 255
t.string "image", limit: 255
t.string "email", limit: 255
t.text "tokens", limit: 65535
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "users", ["email"], name: "index_users_on_email", using: :btree
add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true, using: :btree
add_index "users", ["uid", "provider"], name: "index_users_on_uid_and_provider", unique: true, using: :btree
end
class PasswordController < ApplicationController
config.action_controller.action_on_unpermitted_parameters = :log
end
<p><%= link_to t('.password_change_link'), edit_password_url(@resource, reset_password_token: @token, config: 'default', redirect_url: message['redirect-url'].to_s+'?reset_token='+@token).html_safe %></p>
mount_devise_token_auth_for 'User', at: 'auth', controllers: { passwords: 'passwords' }