1. 程式人生 > 其它 >實現跨域登入遇到的問題:無法設定session

實現跨域登入遇到的問題:無法設定session

今天在準備實現跨域登入,在後臺/login路由中登入成功節點設定req.session.username=user.username,執行失敗。

程式碼如下:

 1 // 跨域登入案例
 2 app.post('/login', (req, res) => {
 3     // 呼叫formidable下的IncomingForm建構函式建立表單解析例項化物件form
 4     var form = new formidable.IncomingForm();
 5     // 模擬資料庫
 6     var obj = {
 7         username: 'canjia',
 8
password: 123456 9 }; 10 // 呼叫form下的parse()方法解析前端傳的表單資料 11 form.parse(req, (err, fields, files) => { 12 const { username, password } = fields; 13 if (username == obj.username && password == obj.password) { 14 // 在ajax傳送的請求的session物件中加入username屬性
req.session.username = username;
15 res.send('登入成功'); 16 return; 17 } else { 18 res.send('使用者名稱或者密碼錯誤') 19 } 20 }) 21 })

前端報錯:POST http://localhost:3002/login net::ERR_CONNECTION_RESET,

後端報錯:

D:\WEB前端\案例\Ajax\server2\app.js:56
req.session.username = user.username;
^

ReferenceError: user is not defined
at form.parse (D:\WEB前端\案例\Ajax\server2\app.js:56:36)
at IncomingForm.<anonymous> (D:\WEB前端\案例\Ajax\node_modules\formidable\lib\incoming_form.js:107:9)
at IncomingForm.emit (events.js:182:13)
at IncomingForm._maybeEnd (D:\WEB前端\案例\Ajax\node_modules\formidable\lib\incoming_form.js:557:8)
at MultipartParser.parser.onEnd (D:\WEB前端\案例\Ajax\node_modules\formidable\lib\incoming_form.js:426:10)
at callback (D:\WEB前端\案例\Ajax\node_modules\formidable\lib\multipart_parser.js:102:31)
at MultipartParser.write (D:\WEB前端\案例\Ajax\node_modules\formidable\lib\multipart_parser.js:268:15)
at IncomingForm.write (D:\WEB前端\案例\Ajax\node_modules\formidable\lib\incoming_form.js:159:34)
at IncomingMessage.<anonymous> (D:\WEB前端\案例\Ajax\node_modules\formidable\lib\incoming_form.js:125:12)
at IncomingMessage.emit (events.js:182:13)
[nodemon] app crashed - waiting for file changes before starting...

經過百度後,發現問題是出在沒有引入express下的session第三方模組