如何解决Laravel 在用户注册或发送电子邮件密码时强化回显/打印/返回令牌
有没有办法在用户注册时(通过使用令牌发送电子邮件验证)以及用户重置密码(通过重置密码链接发送的令牌)时了解 laravel fortify 如何生成令牌。我想打印/回显那些在单元测试期间使用它的内容。
解决方法
我使用 Cypress 执行前端测试并且也需要这个。就我而言,我定义了 cypress 可以访问的特定路由以检索令牌。在控制器内部,我这样做:
public function show (Request $request) {
$broker = Password::broker(config('fortify.passwords'));
$token = $broker->createToken($request->user());
return response()->json($token);
}
这只是返回令牌。
我可以像这样运行测试:
it('Should be possible to access the password reset page',() => {
cy.createUserAndLogin().then(user => {
cy.resetToken().then(token => {
cy.logout()
// Visit the password reset page:
cy.visit('/reset-password/' + token + '?email=' + user.email)
// Fill the form:
cy.get('[name=password]').type('A completely new Password 1')
cy.get('[name=password_confirmation]').type('A completely new Password 1')
cy.get('button.primary').click()
// I should now be able to login:
cy.visit('/login')
cy.get('[name=email]').type(user.email)
cy.get('[name=password]').type('A completely new Password 1')
cy.get('#loginform').submit()
cy.location('pathname').should('eq','/spa')
})
})
})
cy.resetToken().then(token => {})
使用 cypress support 命令实际调用服务器并返回令牌。
当然,诀窍在于 cy.visit('/reset-password/' + token + '?email=' + user.email)
行。您可以在前端测试系统中执行类似的操作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。