嘿开发人员! 我最近在我的项目,电子商务 - 莫克 - 欧米加(Vercel.app)中与Cookie Management搏斗,并认为我会分享我的学习。 让cookie变得更聪明!
>cookie是从服务器发送到用户浏览器的小型数据包。 浏览器存储,创建,修改和将其重新发送到服务器中,并随后的请求。 这对于会话管理,个性化和跟踪至关重要。
>>将cookie视为您的服务器在用户浏览器中留下的小注意。它们非常适合保持用户登录或记住自己的偏好。
><code class="language-javascript">const options = { httpOnly: true, secure: true, sameSite: "none" }; return res .status(200) .cookie("accessToken", accessToken, options) .cookie("refreshToken", refreshToken, options) .json( new Apiresponse( 200, { user: loggedInUser }, "User logged in successfully" ) );</code>
此示例显示设置两个cookie:访问令牌(短期身份验证)和一个刷新令牌(用于获取新的访问令牌)。 options
对象配置关键的安全参数:
httpOnly: true
:防止客户端JavaScript访问,减轻XSS攻击。secure: true
:确保仅通过https发送cookie。
sameSite: "none"
<code class="language-javascript">const loginResponse = await axios.post( `${base_URL}/api/v1/users/signin`, { email, password }, { withCredentials: true } ); if (loginResponse.data.data) { const userResponse = await axios.get( `${base_URL}/api/v1/users/getuser`, { withCredentials: true } // Automatically sends cookies ); }</code>
可确保浏览器将cookie发送回服务器以进行用户数据检索。 简单,对吗?withCredentials: true
<code class="language-javascript">const options = { expires: new Date(Date.now() + 24 * 60 * 60 * 1000), // Expires in 24 hours maxAge: 24 * 60 * 60 * 1000, // Alternative expiry (milliseconds) domain: '.example.com', // All subdomains path: '/', // Entire domain };</code>
expires
:maxAge
(从现在起,毫秒)通常是首选的。maxAge
domain
>
sameSite
(最安全的,限制跨站点请求),strict
(良好默认值),lax
(需要none
)。
secure: true
signed
partitioned
>
就是这样! 希望这会有所帮助。 这是我的第一篇文章,因此欢迎反馈!以上是快速饼干管理提示的详细内容。更多信息请关注PHP中文网其他相关文章!