javascript - 我不想用快递发回表单数据,但确实如此,还是这样?
问题描述
我知道这个问题的标题可能听起来令人困惑,但我的问题实际上很简单。我有这两个用于/login
获取和发布请求的处理程序:
loginRender(req, res) {
let options = { title: 'Login', layout: 'auth.hbs' }
res.render('login', options)
}
login (req,res){
let user = Routes.findUser(req.body.username)
let passwordCorrect = Routes.hashCompare(
req.body.password,
user.password
)
if (passwordCorrect) {
let token = Routes.jwtsign(req.body.username)
let refreshToken = Routes.jwtRefreshToken(req.body.username)
Routes.authRedirect(res, token, refreshToken)
} else {
Routes.badRequestRedirect(res, '/login')
}
}
authRedirect(res, token, refreshToken )
{
let options = {
cssPath: 'styles/querystyle.css',
}
res.cookie('access_token', `${token}`, { httpOnly: true })
res.cookie('refresh_token', `${refreshToken}`, { httpOnly: true })
res.status(200).render('query', options)
}
// app.use(urlencoded)
// app.use(cookieParser)
// app.post('/login', login)';
// app.get('/login', loginRender)
请忽略所有无关的东西。
所以,每次我完成登录时,我都会渲染我的网页,我实际上可以打开检查器并看到这个:
页面检查器
地址栏
我该如何解决?我希望我的用户被重定向到类似仪表板的页面,而不是以不安全的形式接收他的敏感数据。
UPD
还有一个 auth 中间件,它只在我们成功解析 jwt 的情况下附加 req.username ,并且与它有一点交互,但它不会出现在页面上,直到我通过在地址行中写入地址手动转到此页面。
解决方案
如果您不将数据发送到 Express 服务器,那么您将无法在您的login
函数中读取它,也无法验证用户身份。
用户可以在自己的浏览器中使用工具来检查他们输入的数据,这不是问题。
您需要在传输过程中对其进行加密(即使用 HTTPS 而不是纯 HTTP,至少在生产中),但您不必担心用户会找到自己的密码。
推荐阅读
- python - 接受一个字符和整数 n 作为参数并显示接下来的 n 个字符的函数
- python - Json 转换 DataFrame
- java - java.lang.NoClassDefFoundError:解析失败:Ljavax/security/sasl/SaslClientFactory;
- python - 基于Python中的另一列更新列的值
- html - 如何从 Django MEDIA_ROOT 读取文件并让用户在前端下载?
- php - 通过 twilio 和 php 进行语音通话:autoload.php 中的解析错误
- python - 从另一个数据帧推导出一个数据帧
- windows - 如何在 Jenkins Pipeline 中使用最后一次提交消息
- scala - 猫效应:避免在 T => Unit 的外部侦听器上调用 unsafeRun
- amazon-web-services - AWS Kedra 到 UI