CORS登录到expressjs / passportjs app 401未经授权

时间:2014-05-17 22:28:52

标签: ajax node.js cordova express cors

我正在将一个网络应用程序转换为一个cordova应用程序唯一阻止我的是应用程序是基于express的事实,因为cordova需要index.html我需要使用CORS来呈现应用程序并提供登录会话。

我可以使用常规页面的ajax / CORS,但是当涉及授权时,我被卡住了。

我使用passportjs在此POST路由app.post('/login', passport.authenticate('local-login'));上进行身份验证,因此在我的客户端cordova应用程序中,我发出ajax调用以向我提出此请求。

$('body').on('submit', '#logIn', function(e){
    e.preventDefault();

    var formData = $(this).serialize();
    console.log(formData);

    $.ajax({
        url: "http://mysite.io:3300/login",
        data: JSON.stringify(formData),
        type: "POST",
        crossDomain: true,
        dataType: "json",
        async: true,
        success: function(response){
            alert('succeeded!');
            console.log(response);
            alert(response);
        },
        failure: function(message){
            alert("failed");
            console.log(message);
            alert(message);
        }
    });

});

当我发出POST请求时,我得到401 Unauthorized所以我一直在研究这个问题,我仍然不确定为什么它没有授权?

1 个答案:

答案 0 :(得分:1)

来自Passport docs

  

默认情况下,如果身份验证失败,Passport将以401 Unauthorized状态响应,并且不会调用任何其他路由处理程序。

您发布的用户名/密码组合无效。