{"id":894,"date":"2025-04-30T15:22:02","date_gmt":"2025-04-30T07:22:02","guid":{"rendered":"https:\/\/beijian99.top\/?p=894"},"modified":"2025-05-10T09:05:18","modified_gmt":"2025-05-10T01:05:18","slug":"jwt%e3%80%81cookie%e3%80%81session-%e7%9a%84%e5%8c%ba%e5%88%ab%e4%b8%8e%e5%ba%94%e7%94%a8%e5%9c%ba%e6%99%af","status":"publish","type":"post","link":"https:\/\/beijian99.top\/?p=894","title":{"rendered":"JWT\u3001Cookie\u3001Session \u7684\u533a\u522b\u4e0e\u5e94\u7528\u573a\u666f"},"content":{"rendered":"\n<p>Web \u8eab\u4efd\u8ba4\u8bc1\u4e0e\u5b89\u5168\u5b9e\u8df5\uff1aSession\u3001Cookie\u3001JWT \u53ca\u9632\u5fa1\u7b56\u7565<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"164\" height=\"171\" src=\"https:\/\/beijian99.top\/wp-content\/uploads\/2025\/04\/image-57.png\" alt=\"\" class=\"wp-image-896\"\/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>\u5f15\u8a00<br>\u5728\u73b0\u4ee3 Web \u5f00\u53d1\u4e2d\uff0c\u8eab\u4efd\u8ba4\u8bc1\u4e0e\u5b89\u5168\u662f\u6784\u5efa\u53ef\u9760\u7cfb\u7edf\u7684\u6838\u5fc3\u95ee\u9898\u3002\u5f00\u53d1\u8005\u5e38\u9762\u4e34\u591a\u79cd\u6280\u672f\u9009\u578b\uff1aSession-Cookie \u65b9\u6848\u6210\u719f\u4f46\u9700\u7ef4\u62a4\u72b6\u6001\uff0cJWT \u65e0\u72b6\u6001\u4f46\u9700\u6ce8\u610f\u4ee4\u724c\u5b89\u5168\u3002\u540c\u65f6\uff0c\u653b\u51fb\u624b\u6bb5\uff08\u5982 XSS\u3001CSRF\u3001Session \u52ab\u6301\uff09\u7684\u5a01\u80c1\u8981\u6c42\u5f00\u53d1\u8005\u6df1\u5165\u7406\u89e3\u5b89\u5168\u914d\u7f6e\u3002\u672c\u6587\u5c06\u4ece\u57fa\u7840\u6982\u5ff5\u51fa\u53d1\uff0c\u7ed3\u5408\u5b89\u5168\u5b9e\u8df5\uff0c\u7cfb\u7edf\u89e3\u6790\u6280\u672f\u9009\u578b\u4e0e\u9632\u5fa1\u7b56\u7565\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>\u7b2c\u4e00\u90e8\u5206\uff1a\u6838\u5fc3\u6982\u5ff5\u4e0e\u533a\u522b<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Cookie<br>\u2022 \u5b9a\u4e49\uff1a\u7531\u670d\u52a1\u7aef\u901a\u8fc7 <code>Set-Cookie<\/code> \u54cd\u5e94\u5934\u8bbe\u7f6e\uff0c\u5b58\u50a8\u5728\u5ba2\u6237\u7aef\u7684\u5c0f\u578b\u6570\u636e\u7247\u6bb5\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u2022 \u4f5c\u7528\uff1a\u7ef4\u62a4\u5ba2\u6237\u7aef\u72b6\u6001\uff08\u5982\u767b\u5f55\u6001\u3001\u7528\u6237\u504f\u597d\uff09\u3002<\/p>\n\n\n\n<p>\u2022 \u7279\u70b9\uff1a<\/p>\n\n\n\n<p>\u2022 \u5927\u5c0f\u9650\u5236\uff08\u901a\u5e38\u6bcf\u4e2a\u57df\u540d \u22644KB\uff09\u3002<\/p>\n\n\n\n<p>\u2022 \u652f\u6301\u5b89\u5168\u5c5e\u6027\uff1a<code>HttpOnly<\/code>\u3001<code>Secure<\/code>\u3001<code>SameSite<\/code>\u3002<\/p>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>Session<br>\u2022 \u5b9a\u4e49\uff1a\u670d\u52a1\u7aef\u5b58\u50a8\u7684\u7528\u6237\u4f1a\u8bdd\u6570\u636e\uff0c\u901a\u8fc7\u552f\u4e00\u7684 Session ID \u6807\u8bc6\u5ba2\u6237\u7aef\uff08Session ID \u901a\u5e38\u901a\u8fc7 Cookie \u4f20\u9012\uff09\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u2022 \u4f5c\u7528\uff1a\u670d\u52a1\u7aef\u7ef4\u62a4\u590d\u6742\u7528\u6237\u72b6\u6001\uff08\u5982\u8d2d\u7269\u8f66\u3001\u6743\u9650\uff09\u3002<\/p>\n\n\n\n<p>\u2022 \u7279\u70b9\uff1a<\/p>\n\n\n\n<p>\u2022 \u6570\u636e\u5b58\u50a8\u5728\u670d\u52a1\u7aef\uff08\u5982 Redis\u3001\u6570\u636e\u5e93\uff09\u3002<\/p>\n\n\n\n<p>\u2022 \u4f9d\u8d56 Cookie \u6216 URL \u91cd\u5199\u4f20\u9012 Session ID\u3002<\/p>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>JWT\uff08JSON Web Token\uff09<br>\u2022 \u5b9a\u4e49\uff1a\u81ea\u5305\u542b\u7684 JSON \u4ee4\u724c\uff0c\u7531 Header\u3001Payload\u3001Signature \u7ec4\u6210\uff0c\u7528\u4e8e\u65e0\u72b6\u6001\u8eab\u4efd\u9a8c\u8bc1\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u2022 \u4f5c\u7528\uff1a\u5ba2\u6237\u7aef\u6301\u6709\u4ee4\u724c\uff0c\u670d\u52a1\u7aef\u901a\u8fc7\u7b7e\u540d\u9a8c\u8bc1\u5408\u6cd5\u6027\u3002<\/p>\n\n\n\n<p>\u2022 \u7279\u70b9\uff1a<\/p>\n\n\n\n<p>\u2022 \u65e0\u72b6\u6001\uff0c\u9002\u5408\u5206\u5e03\u5f0f\u7cfb\u7edf\u3002<\/p>\n\n\n\n<p>\u2022 \u4ee4\u724c\u65e0\u6cd5\u4e3b\u52a8\u5931\u6548\uff0c\u9700\u7ed3\u5408\u9ed1\u540d\u5355\u673a\u5236\u3002<\/p>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>\u4e09\u8005\u5bf9\u6bd4<br>| \u7279\u6027 | Cookie | Session | JWT |<br>|&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-|&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;|&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;|&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;|<br>| \u5b58\u50a8\u4f4d\u7f6e | \u5ba2\u6237\u7aef | \u670d\u52a1\u7aef | \u5ba2\u6237\u7aef\uff08\u5982 LocalStorage\uff09 |<br>| \u5b89\u5168\u6027 | \u4f9d\u8d56\u5b89\u5168\u5c5e\u6027\u914d\u7f6e | \u4f9d\u8d56 Session ID \u7ba1\u7406 | \u4f9d\u8d56\u7b7e\u540d\u5bc6\u94a5\u4fdd\u62a4 |<br>| \u6269\u5c55\u6027 | \u65e0\u72b6\u6001 | \u9700\u96c6\u4e2d\u5b58\u50a8 | \u5929\u7136\u652f\u6301\u5206\u5e03\u5f0f |<br>| \u9002\u7528\u573a\u666f | \u7b80\u5355\u72b6\u6001\u7ba1\u7406 | \u590d\u6742\u4f1a\u8bdd\u6570\u636e | \u65e0\u72b6\u6001 API\u3001\u8de8\u57df\u8ba4\u8bc1 |<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>\u7b2c\u4e8c\u90e8\u5206\uff1aSession-Cookie \u65b9\u6848\u7684\u5b89\u5168\u673a\u5236<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u8eab\u4efd\u8ba4\u8bc1\u6d41\u7a0b<\/li>\n\n\n\n<li>\u7528\u6237\u767b\u5f55\uff1a\u670d\u52a1\u7aef\u9a8c\u8bc1\u51ed\u8bc1\u540e\u751f\u6210\u552f\u4e00 Session ID\uff0c\u5b58\u50a8\u7528\u6237\u6570\u636e\uff0c\u901a\u8fc7 <code>Set-Cookie<\/code> \u8fd4\u56de Session ID\u3002<\/li>\n\n\n\n<li>\u540e\u7eed\u8bf7\u6c42\uff1a\u5ba2\u6237\u7aef\u81ea\u52a8\u643a\u5e26 Cookie \u4e2d\u7684 Session ID\uff0c\u670d\u52a1\u7aef\u67e5\u8be2 Session \u6570\u636e\u9a8c\u8bc1\u8eab\u4efd\u3002<\/li>\n\n\n\n<li>\u653b\u51fb\u98ce\u9669\u4e0e\u9632\u5fa1\u7b56\u7565<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u653b\u51fb\u7c7b\u578b<\/th><th>\u9632\u5fa1\u65b9\u6848<\/th><th>\u5b9e\u73b0\u793a\u4f8b<\/th><\/tr><\/thead><tbody><tr><td>Session \u52ab\u6301<\/td><td>\u7ed1\u5b9a\u5ba2\u6237\u7aef\u6307\u7eb9\uff08IP\u3001User-Agent\uff09<\/td><td>\u670d\u52a1\u7aef\u6821\u9a8c\u8bf7\u6c42\u7279\u5f81\u4e0e Session \u6570\u636e\u662f\u5426\u4e00\u81f4<\/td><\/tr><tr><td>Session \u731c\u6d4b<\/td><td>\u4f7f\u7528\u5f3a\u968f\u673a Session ID\uff08\u2265128 \u4f4d\uff09<\/td><td><code>crypto.randomBytes(16).toString('hex')<\/code><\/td><\/tr><tr><td>Session \u56fa\u5b9a<\/td><td>\u767b\u5f55\u540e\u91cd\u7f6e Session ID<\/td><td>Flask \u7684 <code>session.regenerate()<\/code><\/td><\/tr><tr><td>XSS \u7a83\u53d6 Cookie<\/td><td>\u8bbe\u7f6e <code>HttpOnly<\/code> \u5c5e\u6027<\/td><td><code>Set-Cookie: session_id=abc; HttpOnly<\/code><\/td><\/tr><tr><td>\u4e2d\u95f4\u4eba\u55c5\u63a2<\/td><td>\u8bbe\u7f6e <code>Secure<\/code> \u5c5e\u6027 + \u5168\u7ad9 HTTPS<\/td><td>Nginx \u914d\u7f6e HSTS \u54cd\u5e94\u5934<\/td><\/tr><tr><td>CSRF \u653b\u51fb<\/td><td><code>SameSite=Strict<\/code> + CSRF Token<\/td><td>Django \u7684 <code>{% csrf_token %}<\/code> \u6807\u7b7e<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>\u5173\u952e\u4ee3\u7801\u793a\u4f8b<br>\u2022 \u751f\u6210\u5f3a\u968f\u673a Session ID\uff08Node.js\uff09\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>const crypto = require('crypto');<br>const sessionId = crypto.randomBytes(16).toString('hex');<\/code><\/pre>\n\n\n\n<p>\u2022 \u767b\u5f55\u540e\u91cd\u7f6e Session ID\uff08Python Flask\uff09\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>@app.route('\/login', methods=['POST'])<br>def login():<br>    # \u9a8c\u8bc1\u7528\u6237\u540e\u91cd\u7f6e Session<br>    session.clear()<br>    session['user_id'] = user.id<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>\u7b2c\u4e09\u90e8\u5206\uff1aCookie \u5b89\u5168\u5c5e\u6027\u8be6\u89e3<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>HttpOnly<br>\u2022 \u4f5c\u7528\uff1a\u7981\u6b62 JavaScript \u8bfb\u53d6 Cookie\uff0c\u9632\u5fa1 XSS \u653b\u51fb\u7a83\u53d6\u654f\u611f\u6570\u636e\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u2022 \u914d\u7f6e\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>Set-Cookie: session_id=abc; Path=\/; HttpOnly<\/code><\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>Secure<br>\u2022 \u4f5c\u7528\uff1a\u4ec5\u5141\u8bb8\u901a\u8fc7 HTTPS \u4f20\u8f93 Cookie\uff0c\u9632\u6b62 HTTP \u660e\u6587\u4f20\u8f93\u88ab\u7a83\u53d6\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u2022 \u914d\u7f6e\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>Set-Cookie: session_id=abc; Path=\/; Secure<\/code><\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>SameSite<br>\u2022 \u4f5c\u7528\uff1a\u63a7\u5236\u8de8\u7ad9\u8bf7\u6c42\u662f\u5426\u643a\u5e26 Cookie\uff0c\u9632\u5fa1 CSRF \u653b\u51fb\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u2022 <code>Strict<\/code>\uff1a\u4ec5\u540c\u7ad9\u8bf7\u6c42\u643a\u5e26\uff08\u5982\u94f6\u884c\u652f\u4ed8\uff09\u3002<\/p>\n\n\n\n<p>\u2022 <code>Lax<\/code>\uff1a\u5141\u8bb8\u5b89\u5168\u8de8\u7ad9\u8bf7\u6c42\uff08\u5982 <code>&lt;a&gt;<\/code> \u94fe\u63a5\u8df3\u8f6c\uff0c\u9ed8\u8ba4\u503c\uff09\u3002<\/p>\n\n\n\n<p>\u2022 <code>None<\/code>\uff1a\u5141\u8bb8\u6240\u6709\u8de8\u7ad9\u8bf7\u6c42\uff08\u9700\u914d\u5408 <code>Secure<\/code>\uff09\u3002<\/p>\n\n\n\n<p>\u2022 \u914d\u7f6e\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>Set-Cookie: session_id=abc; Path=\/; SameSite=Strict; Secure<\/code><\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>\u8054\u5408\u914d\u7f6e\u793a\u4f8b<br>\u2022 \u9ad8\u5b89\u5168\u573a\u666f\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>Set-Cookie: session_id=abc; Path=\/; HttpOnly; Secure; SameSite=Strict<\/code><\/pre>\n\n\n\n<p>\u2022 \u7b2c\u4e09\u65b9\u670d\u52a1\u96c6\u6210\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>Set-Cookie: ad_token=xyz; Path=\/; HttpOnly; Secure; SameSite=None<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>\u7b2c\u56db\u90e8\u5206\uff1aJWT \u7684\u5b89\u5168\u5b9e\u8df5<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u6838\u5fc3\u4f18\u52bf\u4e0e\u98ce\u9669<br>\u2022 \u4f18\u52bf\uff1a\u65e0\u72b6\u6001\u3001\u8de8\u57df\u53cb\u597d\u3001\u9002\u5408\u5fae\u670d\u52a1\u67b6\u6784\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u2022 \u98ce\u9669\uff1a\u4ee4\u724c\u6cc4\u9732\u540e\u65e0\u6cd5\u4e3b\u52a8\u64a4\u9500\u3001Payload \u9ed8\u8ba4\u672a\u52a0\u5bc6\u3002<\/p>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>\u5b89\u5168\u914d\u7f6e\u5efa\u8bae<br>\u2022 \u7b7e\u540d\u7b97\u6cd5\uff1a\u4f7f\u7528 HMAC-SHA256 \u6216 RSA\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u2022 \u4ee4\u724c\u6709\u6548\u671f\uff1a\u8bbe\u7f6e\u77ed\u6709\u6548\u671f\uff08\u5982 15 \u5206\u949f\uff09\uff0c\u642d\u914d\u5237\u65b0\u4ee4\u724c\u673a\u5236\u3002<\/p>\n\n\n\n<p>\u2022 \u5b58\u50a8\u5b89\u5168\uff1a\u907f\u514d LocalStorage\uff08\u6613\u53d7 XSS\uff09\uff0c\u4f18\u5148\u4f7f\u7528 HttpOnly Cookie\u3002<\/p>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>\u4ee3\u7801\u793a\u4f8b\uff08\u751f\u6210 JWT\uff09<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>const jwt = require('jsonwebtoken');<br>const token = jwt.sign(<br>  { user_id: 123 }, <br>  'secret_key', <br>  { expiresIn: '15m' }<br>);<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>\u7b2c\u4e94\u90e8\u5206\uff1a\u6280\u672f\u9009\u578b\u4e0e\u6700\u4f73\u5b9e\u8df5<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u4f55\u65f6\u9009\u62e9 Session-Cookie\uff1f<br>\u2022 \u9700\u8981\u670d\u52a1\u7aef\u4e25\u683c\u7ba1\u63a7\u4f1a\u8bdd\u72b6\u6001\uff08\u5982\u652f\u4ed8\u6d41\u7a0b\uff09\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u2022 \u4f20\u7edf\u5355\u4f53\u67b6\u6784\u6216\u5c0f\u578b\u5e94\u7528\u3002<\/p>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>\u4f55\u65f6\u9009\u62e9 JWT\uff1f<br>\u2022 \u65e0\u72b6\u6001 API \u6216\u8de8\u57df\u8ba4\u8bc1\uff08\u5982 OAuth 2.0\uff09\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u2022 \u5fae\u670d\u52a1\u6216 Serverless \u67b6\u6784\u3002<\/p>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>\u901a\u7528\u5b89\u5168\u539f\u5219<br>\u2022 \u6700\u5c0f\u6743\u9650\uff1aSession \u6216 JWT \u4ec5\u5305\u542b\u5fc5\u8981\u4fe1\u606f\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u2022 \u9632\u5fa1\u7eb5\u6df1\uff1a\u7ec4\u5408\u5b89\u5168\u5c5e\u6027\uff08\u5982 <code>HttpOnly<\/code> + <code>Secure<\/code> + <code>SameSite<\/code>\uff09\u3002<\/p>\n\n\n\n<p>\u2022 \u76d1\u63a7\u544a\u8b66\uff1a\u8bb0\u5f55\u5f02\u5e38\u767b\u5f55\u3001\u591a\u5730\u8bbf\u95ee\u7b49\u884c\u4e3a\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><br><strong>Session-Cookie \u4e0e JWT \u5404\u6709\u4f18\u52a3\uff0c\u9009\u62e9\u65f6\u9700\u6743\u8861\u72b6\u6001\u7ba1\u7406\u3001\u6269\u5c55\u6027\u4e0e\u5b89\u5168\u9700\u6c42\u3002<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Web \u8eab\u4efd\u8ba4\u8bc1\u4e0e\u5b89\u5168\u5b9e\u8df5\uff1aSession\u3001Cookie\u3001JWT \u53ca\u9632\u5fa1\u7b56\u7565 \u5f15\u8a00\u5728\u73b0\u4ee3 Web \u5f00\u53d1\u4e2d\uff0c\u8eab\u4efd [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":896,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[131],"tags":[130],"class_list":["post-894","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-131","tag-jwt"],"_links":{"self":[{"href":"https:\/\/beijian99.top\/index.php?rest_route=\/wp\/v2\/posts\/894","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/beijian99.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/beijian99.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/beijian99.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/beijian99.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=894"}],"version-history":[{"count":3,"href":"https:\/\/beijian99.top\/index.php?rest_route=\/wp\/v2\/posts\/894\/revisions"}],"predecessor-version":[{"id":1050,"href":"https:\/\/beijian99.top\/index.php?rest_route=\/wp\/v2\/posts\/894\/revisions\/1050"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/beijian99.top\/index.php?rest_route=\/wp\/v2\/media\/896"}],"wp:attachment":[{"href":"https:\/\/beijian99.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=894"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/beijian99.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=894"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/beijian99.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=894"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}