【发布时间】: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