【问题标题】:Meteor Accounts reset password token is always nullMeteor Accounts 重置密码令牌始终为空
【发布时间】:2013-04-06 21:18:19
【问题描述】:

查看url_client.js的源代码,明确指出

    // reset password urls use hash fragments instead of url paths/query
    // strings so that the reset password token is not sent over the wire
    // on the http request

我正在使用mini-pages,它不使用网址中的哈希片段,因此我的重置密码令牌永远不会设置。

我设置了一个迷你页面路由来处理以下路径:'reset-password/:code'

match = window.location.hash.match(/^\#\/reset-password\/(.*)$/);

哈希匹配总是返回null,我该怎么做才能得到令牌?我认为令牌存储在数据库中,不应该在设置重置密码令牌之前对数据库进行流星验证

accounts-urls 包定义了在前面查找“#”的帮助程序,并且我的 url 由于某种原因永远不会被捕获。

  Accounts.urls.resetPassword = function (token) {
  return Meteor.absoluteUrl('#/reset-password/' + token);
};

【问题讨论】:

  • 我不确定你想要做什么......令牌通过邮件发送给用户,要获取它你只需从 url 哈希中读取它(这是什么您提供的代码确实如此)。
  • 你的第一句话已经对我有用了。部署时的令牌被发送到用户的电子邮件,在本地运行时作为输出发送到终端。问题是在浏览到提供的 url 后,匹配为空,因为缺少 #reset-password/code 而不是 '#'
  • 在服务器还是在客户端?
  • 这是在客户端上。我检查 Accounts._resetPasswordToken 是否可用,但从来没有,因为 match 找不到任何东西。我也可能在错误的地方寻找令牌,但我已经使用“渲染”回调在我的几个模板中寻找它,但没有运气

标签: meteor token reset-password


【解决方案1】:

对于任何想知道的人。这是由meteor-router 或mini-router 陨石包附带的html5history API 包引起的。我删除了它们,令牌不再为空

【讨论】:

    猜你喜欢
    • 2014-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    相关资源
    最近更新 更多