【发布时间】:2022-07-18 22:57:22
【问题描述】:
我正在尝试在 oAuth 之后保存用户的 access_token 和 refresh_token。
流程:
- 用户进行身份验证,我从社交网站检索他们的 accessToken、refreshToken 和用户数据
- 我将数据发送到混音资源路由
- 在 remix-resource 路由的操作中,我保存了数据,然后尝试使用“Set-Cookie”设置访问令牌和刷新令牌,但它不起作用。
包括我尝试设置 cookie 的 /api/setUser 资源路由的相关部分
export let action: ActionFunction = async ({ request }) => {
const session = await sessionStorage.getSession(
request.headers.get('Cookie')
);
const jsonData = await request.json();
session.set('access_token', jsonData['accessToken']);
session.set('refresh_token', jsonData['refreshToken']);
return json<LoaderData>(
{ status: 'ok' },
{
headers: {
'Set-Cookie': await sessionStorage.commitSession(session),
},
}
);
};
【问题讨论】:
-
会话管理对我来说看起来不错。也许是 createCookieSessionStorage 配置。有一次我因为 cookie 中的域属性不正确而卡住了。
-
你有什么特别的错误吗?注意:如果 cookie 超过 4kb(访问令牌可能很大,取决于它所拥有的数据)它会抛出一个错误