微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Laravel 在用户注册或发送电子邮件密码时强化回显/打印/返回令牌

如何解决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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?