2017-03-09 72 views
0
app.all('*', function(req, res, next){ 
    console.log('req start: ',req.secure, req.hostname, req.url, app.get('port')); 
    if (req.secure) { 
    return next(); 
    }; 

res.redirect('https://'+req.hostname+':'+app.get('secPort')+req.url); 
}); 

在傳入的請求消息上設置了req.secure。因此,req.secure將設置爲true。在這種情況下,傳入請求已經到達安全服務器。所以,其餘的處理過程可以照常進行。如果傳入的請求是針對不安全的服務器,即本地主機冒號3000,那麼我將使用這個名爲res.redirect的函數,該函數可用於express。所以我設置這個請求說HTTPS//。所以我想知道如何將所有http請求重定向到https?請問req.secure如何檢查請求是用於安全服務器還是用於不安全的服務器?req.secure如何在https安全通信中檢查傳入請求是否用於安全服務器?

回答

0

req.secure檢查,如果該協議是HTTPS,它是一樣的:

req.protocol === 'https' 

查看文檔的更多信息:

要強制所有通信是重定向到https你可以這樣做:

server.use('/path', function(req, res, next) { 
    if(!req.secure) { 
    var secureUrl = "https://" + req.headers['host'] + req.url; 
    res.writeHead(301, { "Location": secureUrl }); 
    res.end(); 
    } 
    next(); 
}); 

在這篇文章中解釋說:

相關問題