【发布时间】:2017-06-29 15:06:15
【问题描述】:
我正在使用前端的 AngularJs 构建一个 Rails 应用程序。重置用户密码时,电子邮件会按预期发送,但重置链接不会重定向到配置的passwordResetSuccessUrl,而只是转到:
http://localhost:8000/auth/password/edit?reset_password_token=KNsWjzizNWNsMqzSss8F
如您所见,redirect_url 不存在,我应该在 url 中看到它吗?此外,当点击链接时,应用程序不会触发 auth:password-reset-confirm-success 事件,如 ng-token-auth 文档中所述。
这是请求:
{"email":"myemail@gmail.com","redirect_url":"http://localhost:8000/#!/updatePassword"}
响应是一个 500 错误(我觉得这很奇怪,电子邮件已发送并且服务器日志中没有错误)并带有以下消息: {"message":"密码重置邮件已发送"}
下面是一些相关的配置代码:
function authConfig($authProvider,envServiceProvider) {
let url = envServiceProvider.is('development') ? 'http://localhost:8000' : 'https://miles-board.herokuapp.com';
$authProvider.configure([{
'default': {
apiUrl: url,
emailRegistrationPath: '/users',
confirmationSuccessUrl: window.location.href,
validateOnPageLoad: false,
passwordResetSuccessUrl: url+'/#!/updatePassword'
}},
{'user': {
apiUrl: url,
emailRegistrationPath: '/users',
confirmationSuccessUrl: window.location.href,
validateOnPageLoad: false,
passwordResetSuccessUrl: url+'/#!/updatePassword'
}},
{'team_owner' : {
apiUrl: url,
emailRegistrationPath: '/team_owners',
confirmationSuccessUrl: window.location.href,
validateOnPageLoad: false,
passwordResetSuccessUrl: url+'/#!/updatePassword'
}
}]
);
console.log('is dev: ', envServiceProvider.is('development'))
}
我的电子邮件确认也有问题,所以我认为我在设置中遗漏了一些东西,但我不确定是什么。
作为 Rails 新手,我必须问一个非常新手的问题:我安装了 devise_token_auth gem,我还需要安装 devise,还是 devise_token_auth 包含那个?
在我的 devise_token_auth.rb 初始化程序中,我也包含了这个:
config.default_password_reset_url = 'http://localhost:8000/#!/updatePassword'
如果我能提供任何其他信息,请告诉我。
【问题讨论】:
标签: ruby-on-rails angularjs devise