Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使用Desive_auth_token gem使用rails api应用程序获取重置密码_Ruby On Rails_Ruby_Authentication_Devise_Rails Api - Fatal编程技术网

Ruby on rails 如何使用Desive_auth_token gem使用rails api应用程序获取重置密码

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

我制作了一个新的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}

下面是我的用户模型文件

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' }