我正在使用koajs,我有一个类似以下的路由器,我想检测用户是否通过https请求,我该如何实现?
router.get('/video', function(next){
if(request is over https) {
this.body = yield render('/video', {});
} else {
this.redirect('https://example.com/video');
}
});

答案 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相关的问题时先在那里查看。