Node.JS Express幽灵cookie

时间:2018-12-08 04:26:47

标签: node.js angular express cookies

我在实时服务器上设置Cookie时遇到问题。奇怪的是,它实际上设置并随每个请求发送,但它根本没有出现在应用程序cookie中,并且没有路径或到期日期。在本地一切正常,我将Angular 7用于前端,并且有一个节点Express后端。 Cookie设置正确,并确实出现在本地主机上的Cookie存储中,

我的cors中间件设置如下:

this.express.use(cors({origin: 'https://app.maindomain.ca', credentials: true}));

这是我的登录方法固定在我的POST /登录路线上

public login(req, res) {
      validateLoginForm(req.body)
        .then(doc => {
          createToken(doc)
            .then(token => {
              res.cookie('tok', token, {maxAge : 1000 * 60 * 43800, httpOnly: true});
              res.send({status: 200});
            })
            .catch(err => {res.send(err)})
        })
        .catch(err => {res.send(err)})
    };

在我的前端:

import { Injectable } from '@angular/core';
import {HttpClient, HttpHeaders} from '@angular/common/http';
import {Observable} from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class LoginService {

  baseURL = 'https://api.maindomain.ca';
  headers = new HttpHeaders({'Content-Type': 'application/json'});
  options = {headers: this.headers, withCredentials: true};

  constructor(private http: HttpClient) {}

  public loginFormPost = (datas): Observable<any> => {
    return this.http.post(`${this.baseURL}/login`, datas, this.options);
  }
}

因此,即使我关闭浏览器并发出新请求,它将发送现有的cookie(但不会发送该cookie),我也很困惑为什么它在Local上甚至在现场都能正常运行,cookie被存储在哪里?甚至出现在Cookie存储中。

图片:

enter image description here

0 个答案:

没有答案