我在实时服务器上设置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存储中。
图片: