在设置 cookie 时,除了 name 和 value 以外,还可以设置以下一些属性:
path:表示 cookie 可以被发送到哪些路径。默认值是当前 URL 的路径。 expires:表示 cookie 的过期时间。默认值是当前会话结束时(即关闭浏览器时)。 maxAge:表示 cookie 的最大存活时间(单位为秒)。默认值是不设置最大存活时间,即 cookie 会在关闭浏览器时过期。 domain:表示 cookie 可以被发送到哪些域名。默认值是当前 URL 的域名。 secure:表示 cookie 是否只能通过 HTTPS 协议发送。默认值是不限制协议。 httpOnly:表示 cookie 是否只能通过 HTTP 请求发送,无法通过客户端脚本(如 JavaScript)访问。默认值是 false,即允许通过客户端脚本访问。
在设置 cookie 的时候,expires 和 max-age 属性可以用来控制 cookie 的过期时间,但是它们是有冲突的,如果同时设置了这两个属性,那么以 max-age 为准。 max-age 属性是一个表示 cookie 最大存活时间的整数,以秒为单位
在 HTTP 协议中,401、403、404 和 405 都是常见的状态码,具体含义如下:
401 Unauthorized:表示请求需要用户身份验证,但未提供有效的凭证。通常用于需要登录的接口或资源。 403 Forbidden:表示服务器拒绝了请求,因为客户端没有访问资源的权限。通常用于需要特定权限或角色的接口或资源。 404 Not Found:表示服务器未找到请求的资源。通常用于请求不存在的接口或资源。 405 Method Not Allowed:表示请求使用的 HTTP 方法不被允许。通常用于请求不支持的 HTTP 方法的接口或资源。
在 Node.js 中使用 JSON Web Token (JWT) 生成 token 可以使用 jsonwebtoken 库。下面是一个生成 token 的示例代码:
const jwt = require('jsonwebtoken');
const payload = { user_id: 123 }; const secret = 'my_secret_key'; const options = { expiresIn: '1h' };
const token = jwt.sign(payload, secret, options);
console.log(token); 在上述代码中,jwt.sign 方法用于生成 token,接受三个参数:
payload: 载荷,即需要在 token 中存储的数据,可以是一个对象或字符串。 secret: 密钥,用于生成签名,必须保密,不能泄露。 options: 可选参数,用于设置 token 的有效期等信息。其中 expiresIn 表示 token 的有效期,可以是一个数值加上时间单位的字符串,如 '1h' 表示一个小时,或者是一个以秒为单位的数值,如 3600 表示一个小时。 jwt.sign 方法生成的 token 是一个字符串,包含了签名和载荷等信息,可以返回给客户端,客户端可以在后续请求中将该 token 作为身份验证信息发送给服务器。
需要注意的是,由于 token 中包含了敏感信息,必须保证密钥的安全性,避免泄露,否则会导致安全问题。
另外,options 参数还可以包含其他选项,例如:
algorithm: 签名算法,默认为 HS256。 notBefore: token 的生效时间,即在这个时间之前 token 是无效的。 audience: token 的受众,即该 token 只能用于特定的服务或应用。 issuer: token 的签发者,即用于验证 token 的来源。 这些选项可以根据具体的需求进行设置。