【发布时间】:2021-09-23 18:25:28
【问题描述】:
我有一个用 Swift 编写的带有端点验证的 Vapor 服务器端应用程序,它接受密码参数。密码可以包含加号(+),应正确处理。
目前,当密码包含加号时,在我使用“req.query.get”提取密码后,它正在转换为空格。
我考虑做的是用百分比编码对密码进行编码,并用 %2B 替换加号,这样加号就会出现在从邮递员那里收到的密码中,稍后我需要验证。
我的代码:
func routes(_ app: Application) throws {
app.get("validate") { req -> Int in
do {
var password = try req.query.get(String.self, at: "password")
if !isValidPassword(&password) { return 400 }
} catch {
return 400
}
return 200
}
}
【问题讨论】:
-
你不应该使用 url 发送密码
-
@LeoDabus 仅供学习
-
无论如何。如果你想学习,你应该只发送它的哈希值。我还会使用共享密钥来加密数据以发送/接收它。
-
看看 Crypto 框架
-
@LeoDabus 但现在的重点不是使用密码,而是使用加号验证请求字段
标签: ios swift encoding postman vapor