首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试oauth身份验证路由

测试oauth身份验证路由
EN

Stack Overflow用户
提问于 2014-09-03 10:00:01
回答 1查看 783关注 0票数 4

我正在使用koa-passport & koa通过twitter oauth来处理我的登录和注册。它工作得很好,但是我很难理解我应该如何使用supertest和mocha来测试我的认证路由。

我见过的大多数示例都涉及使用supertest向登录端点发送用户名和密码,以便首先创建用户会话。我的问题是我没有用户名/护照身份验证策略。我需要模拟一个oauth登录过程,该过程将设置适当的会话变量,并因此测试某些路由。

有什么关于我如何实现这一点的线索吗?

EN

回答 1

Stack Overflow用户

发布于 2015-01-10 02:33:39

这些天来,我对这个问题的解决方案基本上是在需要时在中间件堆栈中临时插入一个模拟身份验证的用户。这是我的express的基本代码。

代码语言:javascript
复制
var Layer = require('express/lib/router/layer');
var app = require('../../../server');

exports.login = login;
exports.logout = logout;

function login(user){

  var fn = function insertUser(req, res, next){
    req.user = user;
    next();
  }

  var layer = new Layer('/', {
    sesitive: false,
    strict: false,
    end: false
  }, fn);
  layer.route = undefined;

  app._router.stack.unshift(layer);
}

function logout(){
  app._router.stack.shift();
}

然后在你的测试中,你调用:

代码语言:javascript
复制
it('should allow the user to edit something', function(done){
  login(this.user);
  // perform supertest task
  logout();
});

这显然是相当初级的..。但似乎是为了测试而做这项工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25635080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档