Koajs:如何检查当前连接是否通过https?

时间:2017-07-26 05:18:01

标签: https koa

我正在使用koajs,我有一个类似以下的路由器,我想检测用户是否通过https请求,我该如何实现?



router.get('/video', function(next){
  if(request is over https) {
      this.body = yield render('/video', {});
  } else {
      this.redirect('https://example.com/video');
  }
});




1 个答案:

答案 0 :(得分:2)

您可以使用附加到上下文的secure对象的request。它也是ctx本身的别名。

Koa v1:

router.get('/video', function *(next) {
  if (this.secure) {
    // The request is over https
  }
})

Koa v2:

router.get('/video', async (ctx, next) => {
  if (ctx.secure) {
    // The request is over https
  }
})

ctx.secure相当于检查ctx.protocol === "https"

Koa website docs中提到了这一点,我肯定会建议您在遇到与Koa相关的问题时先在那里查看。