小编ruc*_*ciu的帖子

使用 sinon 存根在 mocha 中对 ES6 函数导入进行存根

我正在尝试根据超级测试库的请求,在 Express Router 中的一条路由上调用存根函数。我看到函数 foo 被正确调用,不幸的是它没有被我在测试中编写的存根函数替换。代码是用 ES6 编写的,我正在使用babel-register和babel-polyfill来使其工作。

我使用运行测试脚本

./node_modules/mocha/bin/mocha server --timeout 10000 --compilers js:babel-register --require babel-polyfill --recursive
Run Code Online (Sandbox Code Playgroud)

路由器.js

import {foo} from '../controller';
const router = new Router();
router.route(ROUTE).post(foo);
Run Code Online (Sandbox Code Playgroud)

控制器.js

export function foo(req, res) {
    res.status(200).send({
        ok: 'ok'
    });
}
Run Code Online (Sandbox Code Playgroud)

测试.js

import request from 'supertest';
import sinon from 'sinon';
import {app} from 'app';
import * as controller from 'controller';

const agent = request.agent(app);
describe('Admin routes tests', () => {
    it('Tests login admin route', async () => …
Run Code Online (Sandbox Code Playgroud)

mocha.js node.js sinon supertest babeljs

9
推荐指数
1
解决办法
4639
查看次数

带有不记名策略的passport-azure-ad veriy msal.js 令牌

我试图将 msal.js 库(https://github.com/AzureAD/microsoft-authentication-library-for-js)与passport-azure-ad(https://github.com/AzureAD/passport-azure- ad ) 承载策略。

我的配置如下:Msal.js

{
    authority: 'https://login.microsoftonline.com/<tennant>',
    clientID: '<clientId>',
    graphScopes: ['user.read', 'Group.Read.All'],
};
Run Code Online (Sandbox Code Playgroud)

护照-天蓝色广告

const config = {
    identityMetadata: 'https://login.microsoftonline.com/<tennant>/v2.0/.well-known/openid-configuration',

    clientID: '<clientId>',

    validateIssuer: false,

    passReqToCallback: false,

    issuer: 'https://login.microsoftonline.com/<tennant>/v2.0',

    audience: '<clientId>',

    allowMultiAudiencesInToken: false,

    loggingLevel:'info',
    loggingNoPII: false,
};
Run Code Online (Sandbox Code Playgroud)

在前端,我通过登录流程和 auire 令牌使用

const token = await this.userAgentApplication.acquireTokenSilent(applicationConfig.graphScopes);
Run Code Online (Sandbox Code Playgroud)

然后我向受passport-azure-ad Bearer Strategy保护的端点发出请求并得到

authentication failed due to: In Strategy.prototype.jwtVerify: cannot verify token
Run Code Online (Sandbox Code Playgroud)

我也登录了图书馆,它说:

Error: invalid signature
Run Code Online (Sandbox Code Playgroud)

我的解码令牌如下所示:

{ header:
   { typ: 'JWT',
     nonce:
      'AQABAAAAAACEfexXxjamQb3OeGQ4GugvOOGFjNwsJMp-y1sPJ254AB4C4gW4sb4kOObzC5BvMpBM-89S8Ri5UvHxPIjpp9ZW408ZgJKLzb2hRWXkib2b7yAA',
     alg: 'RS256',
     x5t: '-sxMJMLCIDWMTPvZyJ6tx-CDxw0',
     kid: '-sxMJMLCIDWMTPvZyJ6tx-CDxw0' …
Run Code Online (Sandbox Code Playgroud)

node.js adal azure-ad-msal passport-azure-ad

7
推荐指数
1
解决办法
2328
查看次数