我如何模拟 auth0 身份验证以进行测试?

Posted

技术标签:

【中文标题】我如何模拟 auth0 身份验证以进行测试?【英文标题】:How can i mock auth0 authentication for testing? 【发布时间】:2017-05-05 03:21:58 【问题描述】:

我正在使用autho0 和express-jwt 来验证我的应用用户。

除了测试之外,一切都很酷。 我在 API 中传递的内容由作者严格划分。这意味着您只有拥有该内容才能访问它。

我正在使用req.user.sub(如果用户被识别,则由 jwt 提供)来设置在我的 API 中传递的内容的作者。

我应该使用 req.user.name 来提供作者吗?如果是这样,我如何模拟身份验证以编写我的测试。

【问题讨论】:

【参考方案1】:

我实现了一个有点初级的简单解决方案:

public static testAuthorName = 'test-author';
private static getAuthor(req) 
    if (process.env.NODE_ENV === 'test') 
        return MyApiClass.testAuthorName;
    
    return req.user.sub.split('|')[1];

这样我就可以在我的测试中使用MyApiClass.testAuthorNamestatically。

【讨论】:

以上是关于我如何模拟 auth0 身份验证以进行测试?的主要内容,如果未能解决你的问题,请参考以下文章

带有 auth0-lock 的 Auth0 仅在使用调试器时进行身份验证,以缓慢单步执行代码

如何在使用 auth0 进行身份验证的反应应用程序中获取用户信息

auth0 401 错误,在尝试身份验证代码交换时进行身份验证

在依赖 Auth0 进行 Facebook 身份验证的应用程序中选择用户 ID?

使用 auth0 Firebase 和 Ionic 进行 Linkedin 身份验证

在与 api 不同的域上对单页应用进行 Auth0 身份验证