bas*_*sic 2 javascript https redirect reactjs next.js
我正在尝试使用 next 进行 http 到 https 重定向,因此如果用户在http://www.example.com 上进入站点,则重定向到https://www.example.com 我正在使用 GraphQL Yoga服务器端,所以不确定如何在服务器端的索引文件中完成此操作。我已经尝试使用元标记并更改窗口对象中的协议,但在服务器端渲染中没有这样做。有什么方法可以在客户端使用 next js 或在服务器端完成此重定向?
const cookieParser = require('cookie-parser')
const jwt = require('jsonwebtoken')
require('dotenv').config({path: '.env'})
const createServer = require('./createServer')
const db = require('./db')
const sslRedirect = require('heroku-ssl-redirect');
const server = createServer()
//Express middleware to handle cookies
server.express.use(cookieParser())
//decode JWT
server.express.use((req, res, next) => {
const { token } = req.cookies;
if (token) {
const { userId } = jwt.verify(token, process.env.APP_SECRET);
req.userId = userId;
}
next()
})
//Populates user on request
server.express.use(async (req, res, next) => {
if(!req.userId) return next()
const user = await db.query.user({
where: {id: req.userId}
}, `{id, permissions, email, name}`)
req.user = user
next()
})
//start
server.start({
cors: {
credentials: true,
origin: process.env.FRONTEND_URL
},
}, starting => {
console.log(`server is running on port ${starting.port}`)
})
Run Code Online (Sandbox Code Playgroud)
小智 6
我过去所做的是使用 express 启动 HTTP 和 HTTPS 服务器。HTTPS 是配置了所有路由\API 的服务器。HTTP 服务器只是将所有 GET 请求重定向到 HTTPS。请参阅以下可用于设置 HTTP 服务器以进行重定向的代码。
let httpRedirectServer = express();
// set up a route to redirect http to https
httpRedirectServer.get('*', (request, response) => {
response.redirect('https://' + request.headers.host + request.url);
});
httpRedirectServer.listen(80);
httpRedirectServer.on('listening', () => {
console.log("Listening to redirect http to https");
});
Run Code Online (Sandbox Code Playgroud)
或者在客户端,快速修复是通过运行类似的东西在 javascript 中重定向。
// Check the URL starts with 'http://xxxxx' protocol, if it does then redirect to 'https://xxxxx' url of same resource
var httpTokens = /^http:\/\/(.*)$/.exec(window.location.href);
if(httpTokens) {
window.location.replace('https://' + httpTokens[1]);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5658 次 |
| 最近记录: |