使用请求时未创建护照会话

时间:2016-03-21 16:09:25

标签: javascript node.js session request passport.js

我使用passportJS来处理服务器后端的登录和持久会话。

当从服务器前端传递请求时,会话正常工作(我没有创建的网页,并且没有足够的专业知识可以搞乱),但在使用请求(https://www.npmjs.com/package/request)手动发送时对服务器的请求,会话根本不起作用 - 不调用deserializeUser,req.user未定义。

这是前端的相关代码。

$.ajax({
    type:"POST",
    url: GE.SERVER_URL + '/publish',
    data: {
      name: $( '#new_publication_name' ).val(),
      code: column.editor.getValue(),
      language: column.mode,
      permissions: $( '#new_publication_permissions' ).prop( 'checked' ),
      tags: $( '#new_publication_tags' ).val().split(','),
      notes: $( '#new_publication_notes' ).val(), 
      instrument: false,
      username: Gibber.Environment.Account.nick
     },
    dataType:'json'
  })
  .done( function ( data ) {        
    if( data.error ) {
      GE.Message.post( 'There was an error writing to Gibber\'s database. Error: ' + data.error )
    }else{
      GE.Message.post( 'Your publication has been saved to: ' + GE.SERVER_URL + '/?path=' + data._id )
    }

这是我正在使用的代码。

request.post({url:'http://127.0.0.1:8080/publish',form:{filename:"steinfile", code:"john doe", language:"english",tags:["testfile"],notes:"thesearenotes"}}, function (error, response, body) {
    if (!error && response.statusCode == 200) {
    console.log(body);
    }
    else
    {
        console.log(error);
    }
})

谢谢!

1 个答案:

答案 0 :(得分:0)

您不会随着request.post一起发送Cookie。

会话正常工作需要它们。