gpt4 book ai didi

node.js - 我想使用 Alamofire 在我的 swift 代码上使用登录 API (node.js)

转载 作者:行者123 更新时间:2023-11-30 10:31:51 24 4
gpt4 key购买 nike

我在尝试登录时遇到错误:这是我的登录服务,我确信它工作得很好,因为我在 postman 上测试了它,并且我已经在 android 上使用它,并且它工作得很好,加密的密码和盐工作得很好..


app.post('/login/',(req,res,next)=>{
var post_data = req.body;

//Extract email and password from request
var user_password = post_data.password;
var email = post_data.email;

con.query('SELECT * FROM user where email=?',[email],function (err,result,fields) {
con.on('error', function (err) {
console.log('[MYSQL ERROR]', err);
});
if (result && result.length)

{
var salt = result[0].salt;
var encrypted_password = result[0].encrypted_password;
var hashed_password = checkHashPassword(user_password, salt).passwordHash;
if (encrypted_password == hashed_password)
res.end(JSON.stringify(result[0]))
else
res.end(JSON.stringify('Wrong Password'))


}

else {

res.json('user not exists!!');

}

});


})

这是我关于 btn_login 操作的快速代码,我使用 Alamofire,他向我显示了 url 的错误,但我使用相同的 url 来显示我的表中的数据,效果很好

    @IBAction func btn_login(_ sender: Any) {


let serverUrl = "https://127.0.0.1:1337/login"


guard let email = emailtf.text, !email.isEmpty else {return}
guard let password = passwordtf.text, !password.isEmpty else {return}


let loginRequest = [
"email" : email,
"password" : password
]

Alamofire.request(serverUrl, method: .post, parameters: loginRequest, encoding: JSONEncoding.default, headers: nil)
.validate(statusCode:200..<300)
.responseJSON { response in
switch response.result {
case .success(let value):
print(value)


break
case .failure(let error):
print(error)

break
}
}
}

我在 xcode 控制台上收到此错误

["Email": "test", "Password": "test"]
2019-11-23 15:41:19.991572+0100 ProjetIOS[19982:799169] Task <F5DB6B8F-2658-4C83-BF64-663B04673CAC>.<1> finished with error [-1002] Error Domain=NSURLErrorDomain Code=-1002 "unsupported URL" UserInfo={NSLocalizedDescription=unsupported URL, NSErrorFailingURLStringKey=localhost:1337/login, NSErrorFailingURLKey=localhost:1337/login, _NSURLErrorRelatedURLSessionTaskErrorKey=(
"LocalDataTask <F5DB6B8F-2658-4C83-BF64-663B04673CAC>.<1>"
), _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <F5DB6B8F-2658-4C83-BF64-663B04673CAC>.<1>, NSUnderlyingError=0x600002f809f0 {Error Domain=kCFErrorDomainCFNetwork Code=-1002 "(null)"}}
Request failed with error: Error Domain=NSURLErrorDomain Code=-1002 "unsupported URL" UserInfo={NSLocalizedDescription=unsupported URL, NSErrorFailingURLStringKey=localhost:1337/login, NSErrorFailingURLKey=localhost:1337/login, _NSURLErrorRelatedURLSessionTaskErrorKey=(
"LocalDataTask <F5DB6B8F-2658-4C83-BF64-663B04673CAC>.<1>"
), _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <F5DB6B8F-2658-4C83-BF64-663B04673CAC>.<1>, NSUnderlyingError=0x600002f809f0 {Error Domain=kCFErrorDomainCFNetwork Code=-1002 "(null)"}}

请问有什么帮助吗?谢谢

最佳答案

在 url 中输入您的本地 IP 而不是 localhost 。例如http://192.168.1.34:1337/

另外尝试在您的 Alamofire 请求中添加 header 。这是一个例子:

let loginRequest = [
"Email" : self.emailtf.text! as String,
"Password" : self.passwordtf.text! as String
]
let headers = ["Content-Type" : "application/json"]

Alamofire.request(url, method : .post, parameters : loginRequest, encoding :
JSONEncoding.default , headers : headers).responseData { dataResponse in

print(dataResponse.request as Any) // your request
print(dataResponse.response as Any) // your response
}

关于node.js - 我想使用 Alamofire 在我的 swift 代码上使用登录 API (node.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59008862/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com