2

我目前正在开发一个在前端使用 AngularJS 并在后端使用 Express 的宠物项目。Angular 前端使用 Restangular 模块使用 RESTful 请求与后端对话。在后端,会话使用 Passport 进行身份验证。在浏览器上,身份验证工作得非常好(例如,使用 Postman,我可以发布我的登录信息,然后从服务器获取我想要的任何内容)。

问题是使用 Restangular,我首先通过发送带有登录信息的 POST 请求来“登录”。主要逻辑如下图所示:

    account = Restangular.all 'login'

    $scope.loginInformation = 
        {
            username: ''
            password: ''    
        }
    succesfulLogin = (res) ->
        console.log res
    unsuccesfulLogin = () ->
        console.log "Login failed"
        console.log $scope.loginInformation
    $scope.login = () ->
        account.post($scope.loginInformation).then succesfulLogin, unsuccesfulLogin

输入正确的用户名和密码后,控制台会打印响应“登录成功。您现在已登录”,这是我们编码后在正确登录时发送的响应(与我们在邮递员上看到的响应相同)。

现在的问题是,无论我尝试 GET 什么,在代码中完成的每个 GET 请求都会返回 403 Forbidden 响应。

我在控制台上得到相同的响应

GET http://[ADDRESS] 403 (Forbidden) 
Object {data: "Error: Not Authenticated", status: 403, headers: function, config: Object}

我不明白浏览器和 Postman 是如何工作的,但我的应用程序不明白。

有没有人有类似设置的运气?

我的直觉告诉我,这与 angular 处理 cookie 的方式有关(虽然不确定)。

4

0 回答 0