Я работаю над мобильным приложением (ios приложение). Я использую nodejs и express на сервере. Когда я запрашиваю из мобильного приложения, сообщение об ошибке не возвращается в ответе. Все отлично работает, когда я использую Почтальон.
функция входа в систему в swift
func login(email:String,password:String,completion: @escaping (Error?) -> ()){
guard let url = URL(string: "http://localhost:3000/auth/login") else {return}
var urlRequest = URLRequest(url: url)
urlRequest.httpMethod = "POST"
let params = ["email":email, "password":password]
do {
let data = try JSONSerialization.data(withJSONObject: params, options: .init())
urlRequest.httpBody = data
urlRequest.setValue("application/json", forHTTPHeaderField: "content-type")
URLSession.shared.dataTask(with: urlRequest) { (data, res, err) in
if let err = err {
completion(err)
print(err)
return
}
guard let data = data else{return}
completion(nil)
}.resume()
} catch {
completion(nil)
}
}
auth. js
router.post('/login', async (req,res) =>{
//login validation
const {error} = loginValidation(req.body);
if (error) return res.send({message:error.details[0].message});
//checking if the email exist
const user = await User.findOne({
email:req.body.email
});
if(!user) return res.status(400).json('invalid Email');
//checking pash is correct
const validPass = await bcrypt.compare(req.body.password,user.password)
if(!validPass) return res.status(400).json('password is not match');
sess = req.session;
sess.email = req.body.email;
console.log(sess);
//create and assing a token
const token = jwt.sign({_id:user._id},process.env.SECRET_TOKEN);
res.header('auth-token',token).json(token);
});
Примечание: индекс . js
const authRoute = require('./routes/auth');
app.use('/auth', authRoute);