有没有一种方法可以知道laravel如何在用户注册时(通过发送带有令牌的电子邮件验证(以及在用户重置密码时(通过重置密码链接发送的令牌(生成令牌。我想打印/回显这些,以便在单元测试中使用它。
我使用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')
})
})
})
CCD_ 1使用Cyprus支持命令对服务器进行实际调用并返回令牌。
当然,关键在于cy.visit('/reset-password/' + token + '?email=' + user.email)
行。您可以在前端测试系统中执行类似的操作。