如何解决在 Ionic 应用程序中,如何使用 fetch 从我的服务器获取会话 cookie (httpOnly)?
我有一个与 Drupal 服务器通信的 Ionic React 应用程序。 Drupal 提供带有 httpOnly
集的会话 cookie。我需要在我的应用程序中获取一个会话 cookie,以便在我打开 web 视图时,用户登录到 Drupal 站点。
但是,我不知道如何发出获取 cookie 的 http 请求。
在 Postman 中,这会返回 cookie:
POST
https://example.com/user/login?_format=json
- 正文:
raw
还有身体:
{
"mail":"test@example.com","pass":"password"
}
使用 Postman,除了服务器响应之外,我还得到了这样的会话 cookie:
SESSf6f36d8c129ea800a6658d30964d3887=gLfa_VSCEjN8TwmibzyFoGmjxcxkFzVYlVEOHgijemA; Path=/; Domain=example.com; HttpOnly; Expires=Sat,20 Mar 2021 04:22:26 GMT;
所以我尝试在 fetch
中提出相同类型的请求:
async function login(email: string,password: string): Promise<void> {
const loginPost = {
mail: email,pass: password,};
await fetch(`${baseUrl}/user/login?_format=json`,{
method: 'POST',headers: new Headers({
Accept: 'application/json',});
body: JSON.stringify(loginPost),credentials: 'same-origin',})
.then(handleErrors)
.then((response) => response.json())
.then((data) => {
console.log('response',data);
})
.catch((error) => Promise.reject(new Error(error)));
}
基于 the answers to this question,我为 same-origin
尝试了 include
和 credentials
。
但是,这不会获取/设置会话 cookie。我得到与 Postman 相同的服务器响应,但我没有得到会话 cookie。
如何使用 fetch 获取会话 cookie?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。