{"id":113,"date":"2024-04-17T00:33:33","date_gmt":"2024-04-16T15:33:33","guid":{"rendered":"https:\/\/dsk-blog.com\/?p=113"},"modified":"2024-04-17T00:49:58","modified_gmt":"2024-04-16T15:49:58","slug":"rust%e3%81%a7json-web-tokens%ef%bc%88jwt%ef%bc%89%e3%82%92%e6%89%b1%e3%81%86jsonwebtoken%e3%82%af%e3%83%ac%e3%83%bc%e3%83%88%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b-%e2%91%a0","status":"publish","type":"post","link":"https:\/\/dsk-blog.com\/?p=113","title":{"rendered":"Rust\u3067JSON Web Tokens\uff08JWT\uff09\u3092\u6271\u3046jsonwebtoken\u30af\u30ec\u30fc\u30c8\u3092\u4f7f\u3063\u3066\u307f\u308b \u2460"},"content":{"rendered":"\n<p>\u4eca\u56de\u306f\u5b9f\u88c5\u3068\u3044\u3046\u3088\u308a\u306f\u4f7f\u3044\u65b9\u3084\u6319\u52d5\u3092\u78ba\u8a8d\u3057\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading jinr-heading d--bold\">JWT\u3068\u306f<\/h2>\n\n\n\n<p>JWT\u306b\u3064\u3044\u3066\u306f\u3001\u3053\u3061\u3089\u306e\u8a18\u4e8b\u304c\u308f\u304b\u308a\u3084\u3059\u3044\u304b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n<div class=\"linkcard\"><div class=\"lkc-external-wrap\"><a class=\"lkc-link no_icon\" href=\"https:\/\/developer.mamezou-tech.com\/blogs\/2022\/12\/08\/jwt-auth\/\" target=\"_blank\" rel=\"external noopener\"><div class=\"lkc-card\"><div class=\"lkc-content\"><figure class=\"lkc-thumbnail\"><img decoding=\"async\" class=\"lkc-thumbnail-img\" src=\"\/\/dsk-blog.com\/wp-content\/uploads\/pz-linkcard\/cache\/1b43311cd909ce5a53cc4dd3709f9cfdbd89fb603b3439e0807e7a85fb8584a9.jpeg\" alt=\"\" \/><\/figure><div class=\"lkc-title\"><div class=\"lkc-title-text\">\u57fa\u672c\u304b\u3089\u7406\u89e3\u3059\u308bJWT\u3068JWT\u8a8d\u8a3c\u306e\u4ed5\u7d44\u307f | \u8c46\u8535\u30c7\u30d9\u30ed\u30c3\u30d1\u30fc\u30b5\u30a4\u30c8<\/div><\/div><div class=\"lkc-url\">https:\/\/developer.mamezou-tech.com\/blogs\/2022\/12\/08\/jwt-auth\/<\/div><div class=\"lkc-excerpt\"><\/div><\/div><div class=\"lkc-info\"><img decoding=\"async\" class=\"lkc-favicon\" src=\"https:\/\/www.google.com\/s2\/favicons?domain=developer.mamezou-tech.com\" alt=\"\" width=16 height=16 \/><div class=\"lkc-domain\">developer.mamezou-tech.com<\/div>&nbsp;<div class=\"lkc-share\"> <div class=\"lkc-sns-hb\">273 Users<\/div> <div class=\"lkc-sns-po\">132 Pockets<\/div><\/div><\/div><div class=\"clear\"><\/div><\/div><\/a><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading jinr-heading d--bold\">jsonwebtoken\u3092\u4f7f\u3063\u3066\u307f\u308b<\/h2>\n\n\n\n<p><strong>Cargo.toml\u306b\u4ee5\u4e0b\u3092\u8ffd\u52a0<\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Monaspace-Xenon.woff\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-Monaspace-Xenon,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#1E1E1E;font-style:italic;color:#D4D4D4\"><span style=\"border-bottom:1px solid rgba(234, 191, 191, 0.2)\">Rust<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"[dependencies]\njsonwebtoken = &quot;9.3.0&quot;\nserde = {version = &quot;1.0.0&quot;, features = [&quot;derive&quot;]}\nuuid = {version = &quot;1.8.0&quot;, features = [&quot;v4&quot;, &quot;serde&quot;]}\nchrono  = &quot;0.4.37&quot;\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D4D4D4\">[<\/span><span style=\"color: #9CDCFE\">dependencies<\/span><span style=\"color: #D4D4D4\">]<\/span><\/span>\n<span class=\"line\"><span style=\"color: #9CDCFE\">jsonwebtoken<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #CE9178\">&quot;9.3.0&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #9CDCFE\">serde<\/span><span style=\"color: #D4D4D4\"> = {<\/span><span style=\"color: #9CDCFE\">version<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #CE9178\">&quot;1.0.0&quot;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #9CDCFE\">features<\/span><span style=\"color: #D4D4D4\"> = [<\/span><span style=\"color: #CE9178\">&quot;derive&quot;<\/span><span style=\"color: #D4D4D4\">]}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #9CDCFE\">uuid<\/span><span style=\"color: #D4D4D4\"> = {<\/span><span style=\"color: #9CDCFE\">version<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #CE9178\">&quot;1.8.0&quot;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #9CDCFE\">features<\/span><span style=\"color: #D4D4D4\"> = [<\/span><span style=\"color: #CE9178\">&quot;v4&quot;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #CE9178\">&quot;serde&quot;<\/span><span style=\"color: #D4D4D4\">]}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #9CDCFE\">chrono<\/span><span style=\"color: #D4D4D4\">  = <\/span><span style=\"color: #CE9178\">&quot;0.4.37&quot;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u30a4\u30f3\u30dd\u30fc\u30c8<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Monaspace-Xenon.woff\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-Monaspace-Xenon,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#1E1E1E;font-style:italic;color:#D4D4D4\"><span style=\"border-bottom:1px solid rgba(234, 191, 191, 0.2)\">Rust<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"use jsonwebtoken::{\n    decode,\n    encode,\n    Algorithm,\n    DecodingKey,\n    EncodingKey,\n    Header,\n    Validation,\n    TokenData\n};\nuse serde::{Serialize, Deserialize};\nuse uuid::Uuid;\nuse chrono::{Duration, Utc, DateTime};\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #569CD6\">use<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">jsonwebtoken<\/span><span style=\"color: #D4D4D4\">::{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    decode,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    encode,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #4EC9B0\">Algorithm<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #4EC9B0\">DecodingKey<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #4EC9B0\">EncodingKey<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #4EC9B0\">Header<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #4EC9B0\">Validation<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #4EC9B0\">TokenData<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">};<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">use<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">serde<\/span><span style=\"color: #D4D4D4\">::{<\/span><span style=\"color: #4EC9B0\">Serialize<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #4EC9B0\">Deserialize<\/span><span style=\"color: #D4D4D4\">};<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">use<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">uuid<\/span><span style=\"color: #D4D4D4\">::<\/span><span style=\"color: #4EC9B0\">Uuid<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">use<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">chrono<\/span><span style=\"color: #D4D4D4\">::{<\/span><span style=\"color: #4EC9B0\">Duration<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #4EC9B0\">Utc<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #4EC9B0\">DateTime<\/span><span style=\"color: #D4D4D4\">};<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><strong>Claims\u3092<\/strong>\u5b9a\u7fa9<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Monaspace-Xenon.woff\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-Monaspace-Xenon,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#1E1E1E;font-style:italic;color:#D4D4D4\"><span style=\"border-bottom:1px solid rgba(234, 191, 191, 0.2)\">Rust<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"#[derive(Debug, Serialize, Deserialize, PartialEq, Eq)]\nstruct Claims {\n    iss: String, \/\/ issuer (JWT\u306e\u767a\u884c\u8005)\n    sub: Uuid, \/\/ subject (\u30e6\u30fc\u30b6\u30fc\u306e\u8b58\u5225\u5b50)\n    aud: String, \/\/ audience (JWT\u306e\u53d7\u4fe1\u8005)\n    exp: i64, \/\/ expiration time (\u30c8\u30fc\u30af\u30f3\u306e\u6709\u52b9\u671f\u9650)\n    iat: i64, \/\/ Issued At (\u767a\u884c\u65e5\u6642)\n    jti: Uuid, \/\/ JWT ID (JWT\u306e\u4e00\u610f\u306a\u8b58\u5225\u5b50)\n}\" style=\"color:#D4D4D4;display:none\" aria-label=\"Rust\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D4D4D4\">#[derive(<\/span><span style=\"color: #4EC9B0\">Debug<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #4EC9B0\">Serialize<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #4EC9B0\">Deserialize<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #4EC9B0\">PartialEq<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #4EC9B0\">Eq<\/span><span style=\"color: #D4D4D4\">)]<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">struct<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">Claims<\/span><span style=\"color: #D4D4D4\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #9CDCFE\">iss<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #4EC9B0\">String<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #6A9955\"> \/\/ issuer (JWT\u306e\u767a\u884c\u8005)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #9CDCFE\">sub<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #4EC9B0\">Uuid<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #6A9955\"> \/\/ subject (\u30e6\u30fc\u30b6\u30fc\u306e\u8b58\u5225\u5b50)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #9CDCFE\">aud<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #4EC9B0\">String<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #6A9955\"> \/\/ audience (JWT\u306e\u53d7\u4fe1\u8005)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #9CDCFE\">exp<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #4EC9B0\">i64<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #6A9955\"> \/\/ expiration time (\u30c8\u30fc\u30af\u30f3\u306e\u6709\u52b9\u671f\u9650)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #9CDCFE\">iat<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #4EC9B0\">i64<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #6A9955\"> \/\/ Issued At (\u767a\u884c\u65e5\u6642)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #9CDCFE\">jti<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #4EC9B0\">Uuid<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #6A9955\"> \/\/ JWT ID (JWT\u306e\u4e00\u610f\u306a\u8b58\u5225\u5b50)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><strong>Claims\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u4f5c\u6210<\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Monaspace-Xenon.woff\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-Monaspace-Xenon,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#1E1E1E;font-style:italic;color:#D4D4D4\"><span style=\"border-bottom:1px solid rgba(234, 191, 191, 0.2)\">Rust<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"fn main() {\n    let current_time: DateTime&lt;Utc&gt; = Utc::now();\n    let duration_time: DateTime&lt;Utc&gt; = current_time + Duration::hours(1);\n    let expiration_time: i64 = duration_time.timestamp(); \/\/ \u6709\u52b9\u671f\u9650\u306eUNIX\u6642\u9593\n    let issued_at: i64 = current_time.timestamp(); \/\/ \u767a\u884c\u65e5\u6642\u306eUNIX\u6642\u9593\n    let user_id: Uuid = Uuid::new_v4();\n    let jwt_id: Uuid = Uuid::new_v4();\n\n    let test_claims: Claims = Claims {\n        iss: &quot;example@example.com&quot;.to_string(),\n        sub: user_id,\n        aud: &quot;example@example.com\/test&quot;.to_string(),\n        exp: expiration_time,\n        iat: issued_at,\n        jti: jwt_id,\n    };\n    \/\/ ...\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #569CD6\">fn<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">main<\/span><span style=\"color: #D4D4D4\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">let<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">current_time<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #4EC9B0\">DateTime<\/span><span style=\"color: #D4D4D4\">&lt;<\/span><span style=\"color: #4EC9B0\">Utc<\/span><span style=\"color: #D4D4D4\">&gt; = <\/span><span style=\"color: #4EC9B0\">Utc<\/span><span style=\"color: #D4D4D4\">::<\/span><span style=\"color: #DCDCAA\">now<\/span><span style=\"color: #D4D4D4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">let<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">duration_time<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #4EC9B0\">DateTime<\/span><span style=\"color: #D4D4D4\">&lt;<\/span><span style=\"color: #4EC9B0\">Utc<\/span><span style=\"color: #D4D4D4\">&gt; = <\/span><span style=\"color: #9CDCFE\">current_time<\/span><span style=\"color: #D4D4D4\"> + <\/span><span style=\"color: #4EC9B0\">Duration<\/span><span style=\"color: #D4D4D4\">::<\/span><span style=\"color: #DCDCAA\">hours<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">let<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">expiration_time<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #4EC9B0\">i64<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">duration_time<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">timestamp<\/span><span style=\"color: #D4D4D4\">();<\/span><span style=\"color: #6A9955\"> \/\/ \u6709\u52b9\u671f\u9650\u306eUNIX\u6642\u9593<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">let<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">issued_at<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #4EC9B0\">i64<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">current_time<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">timestamp<\/span><span style=\"color: #D4D4D4\">();<\/span><span style=\"color: #6A9955\"> \/\/ \u767a\u884c\u65e5\u6642\u306eUNIX\u6642\u9593<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">let<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">user_id<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #4EC9B0\">Uuid<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #4EC9B0\">Uuid<\/span><span style=\"color: #D4D4D4\">::<\/span><span style=\"color: #DCDCAA\">new_v4<\/span><span style=\"color: #D4D4D4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">let<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">jwt_id<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #4EC9B0\">Uuid<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #4EC9B0\">Uuid<\/span><span style=\"color: #D4D4D4\">::<\/span><span style=\"color: #DCDCAA\">new_v4<\/span><span style=\"color: #D4D4D4\">();<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">let<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">test_claims<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #4EC9B0\">Claims<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #4EC9B0\">Claims<\/span><span style=\"color: #D4D4D4\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">iss<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #CE9178\">&quot;example@example.com&quot;<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">to_string<\/span><span style=\"color: #D4D4D4\">(),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">sub<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #9CDCFE\">user_id<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">aud<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #CE9178\">&quot;example@example.com\/test&quot;<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">to_string<\/span><span style=\"color: #D4D4D4\">(),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">exp<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #9CDCFE\">expiration_time<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">iat<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #9CDCFE\">issued_at<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">jti<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #9CDCFE\">jwt_id<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    };<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">    \/\/ ...<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><strong>\u30a8\u30f3\u30b3\u30fc\u30c9<\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Monaspace-Xenon.woff\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-Monaspace-Xenon,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#1E1E1E;font-style:italic;color:#D4D4D4\"><span style=\"border-bottom:1px solid rgba(234, 191, 191, 0.2)\">Rust<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"\t\/\/ ...\n\t\/\/ JWT\u30d8\u30c3\u30c0\u30fc\u4f5c\u6210(HS512\u3092\u4f7f\u7528\u3057\u307e\u3059)\n    let header: Header = Header::new(Algorithm::HS512); \n    \/\/ \u30a8\u30f3\u30b3\u30fc\u30c9\u7528\u306e\u30ad\u30fc\u3092\u4f5c\u6210\u3057\u307e\u3059\uff08\u5b9f\u969b\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u3001\u74b0\u5883\u5909\u6570\u304b\u3089\u30ad\u30fc\u3092\u53d6\u5f97\u3059\u308b\u306e\u304c\u671b\u307e\u3057\u3044\u3067\u3059\uff09\n    let encoding_key: EncodingKey = EncodingKey::from_secret(&quot;test_key_generate&quot;.as_ref());\n    \/\/ \u30a8\u30f3\u30b3\u30fc\u30c9\n    let token: String = encode(&amp;header, &amp;test_claims, &amp;encoding_key).unwrap();\n\t\/\/ ...\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955\">\t\/\/ ...<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\t\/\/ JWT\u30d8\u30c3\u30c0\u30fc\u4f5c\u6210(HS512\u3092\u4f7f\u7528\u3057\u307e\u3059)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">let<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">header<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #4EC9B0\">Header<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #4EC9B0\">Header<\/span><span style=\"color: #D4D4D4\">::<\/span><span style=\"color: #DCDCAA\">new<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #4EC9B0\">Algorithm<\/span><span style=\"color: #D4D4D4\">::HS512); <\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">    \/\/ \u30a8\u30f3\u30b3\u30fc\u30c9\u7528\u306e\u30ad\u30fc\u3092\u4f5c\u6210\u3057\u307e\u3059\uff08\u5b9f\u969b\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u3001\u74b0\u5883\u5909\u6570\u304b\u3089\u30ad\u30fc\u3092\u53d6\u5f97\u3059\u308b\u306e\u304c\u671b\u307e\u3057\u3044\u3067\u3059\uff09<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">let<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">encoding_key<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #4EC9B0\">EncodingKey<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #4EC9B0\">EncodingKey<\/span><span style=\"color: #D4D4D4\">::<\/span><span style=\"color: #DCDCAA\">from_secret<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;test_key_generate&quot;<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">as_ref<\/span><span style=\"color: #D4D4D4\">());<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">    \/\/ \u30a8\u30f3\u30b3\u30fc\u30c9<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">let<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">token<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #4EC9B0\">String<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #DCDCAA\">encode<\/span><span style=\"color: #D4D4D4\">(&amp;<\/span><span style=\"color: #9CDCFE\">header<\/span><span style=\"color: #D4D4D4\">, &amp;<\/span><span style=\"color: #9CDCFE\">test_claims<\/span><span style=\"color: #D4D4D4\">, &amp;<\/span><span style=\"color: #9CDCFE\">encoding_key<\/span><span style=\"color: #D4D4D4\">).<\/span><span style=\"color: #DCDCAA\">unwrap<\/span><span style=\"color: #D4D4D4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\t\/\/ ...<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u5b9f\u969b\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u3001<code>from_secret()<\/code> \u3067\u4f7f\u7528\u3059\u308b\u30b7\u30fc\u30af\u30ec\u30c3\u30c8\u30ad\u30fc\u3092\u30cf\u30fc\u30c9\u30b3\u30fc\u30c9\u3059\u308b\u3053\u3068\u306f\u907f\u3051\u3001\u5b89\u5168\u306b\u7ba1\u7406\u3055\u308c\u305f\u74b0\u5883\u5909\u6570\u304b\u3089\u8aad\u307f\u8fbc\u3080\u3079\u304d\u3067\u3059\u3002<\/p>\n\n\n\n<p><strong>\u30c7\u30b3\u30fc\u30c9<\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Monaspace-Xenon.woff\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-Monaspace-Xenon,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#1E1E1E;font-style:italic;color:#D4D4D4\"><span style=\"border-bottom:1px solid rgba(234, 191, 191, 0.2)\">Rust<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"\t\/\/ ...\n\t\/\/ \u30c7\u30b3\u30fc\u30c9\u7528\u306e\u30ad\u30fc\u3092\u4f5c\u6210\u3057\u307e\u3059\uff08\u5b9f\u969b\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u3001\u74b0\u5883\u5909\u6570\u304b\u3089\u30ad\u30fc\u3092\u53d6\u5f97\u3059\u308b\u306e\u304c\u671b\u307e\u3057\u3044\u3067\u3059\uff09\n    let decoding_key: DecodingKey = DecodingKey::from_secret(&quot;test_key_generate&quot;.as_ref());\n    \/\/ \u30c7\u30b3\u30fc\u30c9\u3057\u305f\u5f8c\u306b\u9069\u7528\u3055\u308c\u308b\u691c\u8a3c\u306e\u8a2d\u5b9a\n    let mut validation: Validation = Validation::new(Algorithm::HS512);\n    validation.set_audience(&amp;[&quot;example@example.com\/test&quot;]);\n    validation.set_issuer(&amp;[&quot;example@example.com&quot;]);\n    \/\/ sub\u304cJWT\u306esub\u30af\u30ec\u30fc\u30e0\u3068\u4e00\u81f4\u3059\u308b\u3053\u3068\u3092\u691c\u8a3c\n    validation.sub = Some(user_id.to_string());\n    \/\/ \u30c7\u30b3\u30fc\u30c9\n    let decoded_token: TokenData&lt;Claims&gt; = decode::&lt;Claims&gt;(&amp;token, &amp;decoding_key, &amp;validation).unwrap();\n    \/\/ ...\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955\">\t\/\/ ...<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\t\/\/ \u30c7\u30b3\u30fc\u30c9\u7528\u306e\u30ad\u30fc\u3092\u4f5c\u6210\u3057\u307e\u3059\uff08\u5b9f\u969b\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u3001\u74b0\u5883\u5909\u6570\u304b\u3089\u30ad\u30fc\u3092\u53d6\u5f97\u3059\u308b\u306e\u304c\u671b\u307e\u3057\u3044\u3067\u3059\uff09<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">let<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">decoding_key<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #4EC9B0\">DecodingKey<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #4EC9B0\">DecodingKey<\/span><span style=\"color: #D4D4D4\">::<\/span><span style=\"color: #DCDCAA\">from_secret<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;test_key_generate&quot;<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">as_ref<\/span><span style=\"color: #D4D4D4\">());<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">    \/\/ \u30c7\u30b3\u30fc\u30c9\u3057\u305f\u5f8c\u306b\u9069\u7528\u3055\u308c\u308b\u691c\u8a3c\u306e\u8a2d\u5b9a<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">let<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">mut<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">validation<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #4EC9B0\">Validation<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #4EC9B0\">Validation<\/span><span style=\"color: #D4D4D4\">::<\/span><span style=\"color: #DCDCAA\">new<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #4EC9B0\">Algorithm<\/span><span style=\"color: #D4D4D4\">::HS512);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #9CDCFE\">validation<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">set_audience<\/span><span style=\"color: #D4D4D4\">(&amp;[<\/span><span style=\"color: #CE9178\">&quot;example@example.com\/test&quot;<\/span><span style=\"color: #D4D4D4\">]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #9CDCFE\">validation<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">set_issuer<\/span><span style=\"color: #D4D4D4\">(&amp;[<\/span><span style=\"color: #CE9178\">&quot;example@example.com&quot;<\/span><span style=\"color: #D4D4D4\">]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">    \/\/ sub\u304cJWT\u306esub\u30af\u30ec\u30fc\u30e0\u3068\u4e00\u81f4\u3059\u308b\u3053\u3068\u3092\u691c\u8a3c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #9CDCFE\">validation<\/span><span style=\"color: #D4D4D4\">.sub = <\/span><span style=\"color: #4EC9B0\">Some<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">user_id<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">to_string<\/span><span style=\"color: #D4D4D4\">());<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">    \/\/ \u30c7\u30b3\u30fc\u30c9<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">let<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">decoded_token<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #4EC9B0\">TokenData<\/span><span style=\"color: #D4D4D4\">&lt;<\/span><span style=\"color: #4EC9B0\">Claims<\/span><span style=\"color: #D4D4D4\">&gt; = <\/span><span style=\"color: #DCDCAA\">decode<\/span><span style=\"color: #D4D4D4\">::&lt;<\/span><span style=\"color: #4EC9B0\">Claims<\/span><span style=\"color: #D4D4D4\">&gt;(&amp;<\/span><span style=\"color: #9CDCFE\">token<\/span><span style=\"color: #D4D4D4\">, &amp;<\/span><span style=\"color: #9CDCFE\">decoding_key<\/span><span style=\"color: #D4D4D4\">, &amp;<\/span><span style=\"color: #9CDCFE\">validation<\/span><span style=\"color: #D4D4D4\">).<\/span><span style=\"color: #DCDCAA\">unwrap<\/span><span style=\"color: #D4D4D4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">    \/\/ ...<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><strong>TokenData\u306e\u69cb\u9020\u4f53\u306f\u3053\u306e\u3088\u3046\u306b\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u3059<\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Monaspace-Xenon.woff\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-Monaspace-Xenon,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#1E1E1E;font-style:italic;color:#D4D4D4\"><span style=\"border-bottom:1px solid rgba(234, 191, 191, 0.2)\">Rust<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"\/\/ TokenData\u69cb\u9020\u4f53\u306f\u3001\u30c7\u30b3\u30fc\u30c9\u3055\u308c\u305fJWT\u306e\u30d8\u30c3\u30c0\u30fc\u3068\u30af\u30ec\u30fc\u30e0\u3092\u683c\u7d0d\u3057\u307e\u3059\u3002\u30d8\u30c3\u30c0\u30fc\u306b\u306f\u4f7f\u7528\u3055\u308c\u305f\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306a\u3069\u306e\u30e1\u30bf\u30c7\u30fc\u30bf\u304c\u542b\u307e\u308c\u3001\u30af\u30ec\u30fc\u30e0\u306b\u306f\u30c8\u30fc\u30af\u30f3\u306e\u30da\u30a4\u30ed\u30fc\u30c9\uff08\u4e3b\u5f35\uff09\u304c\u542b\u307e\u308c\u307e\u3059\npub struct TokenData&lt;T&gt; {\n    pub header: Header,\n    pub claims: T,\n}\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955\">\/\/ TokenData\u69cb\u9020\u4f53\u306f\u3001\u30c7\u30b3\u30fc\u30c9\u3055\u308c\u305fJWT\u306e\u30d8\u30c3\u30c0\u30fc\u3068\u30af\u30ec\u30fc\u30e0\u3092\u683c\u7d0d\u3057\u307e\u3059\u3002\u30d8\u30c3\u30c0\u30fc\u306b\u306f\u4f7f\u7528\u3055\u308c\u305f\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306a\u3069\u306e\u30e1\u30bf\u30c7\u30fc\u30bf\u304c\u542b\u307e\u308c\u3001\u30af\u30ec\u30fc\u30e0\u306b\u306f\u30c8\u30fc\u30af\u30f3\u306e\u30da\u30a4\u30ed\u30fc\u30c9\uff08\u4e3b\u5f35\uff09\u304c\u542b\u307e\u308c\u307e\u3059<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">pub<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">struct<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">TokenData<\/span><span style=\"color: #D4D4D4\">&lt;<\/span><span style=\"color: #4EC9B0\">T<\/span><span style=\"color: #D4D4D4\">&gt; {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">pub<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">header<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #4EC9B0\">Header<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">pub<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">claims<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #4EC9B0\">T<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><code>token<\/code>\u3092\u51fa\u529b\u3057\u3066\u3001<code>header<\/code>\u3068<code>claims<\/code>\u306e\u30c7\u30b3\u30fc\u30c9\u3055\u308c\u305f\u5024\u3092\u30a8\u30f3\u30b3\u30fc\u30c9\u3055\u308c\u308b\u524d\u3068\u540c\u3058\u304b\u3092\u6bd4\u8f03<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Monaspace-Xenon.woff\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-Monaspace-Xenon,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#1E1E1E;font-style:italic;color:#D4D4D4\"><span style=\"border-bottom:1px solid rgba(234, 191, 191, 0.2)\">Rust<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"\t\/\/ ...\n\tprintln!(&quot;token = {}&quot;, token);\n    println!(&quot;test_claims == decoded_token.claims -&gt; {}&quot;, test_claims == decoded_token.claims);\n    println!(&quot;header == decoded_token.header -&gt; {}&quot;, header == decoded_token.header);\n}\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955\">\t\/\/ ...<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #DCDCAA\">println!<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;token = {}&quot;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #9CDCFE\">token<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">println!<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;test_claims == decoded_token.claims -&gt; {}&quot;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #9CDCFE\">test_claims<\/span><span style=\"color: #D4D4D4\"> == <\/span><span style=\"color: #9CDCFE\">decoded_token<\/span><span style=\"color: #D4D4D4\">.claims);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">println!<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;header == decoded_token.header -&gt; {}&quot;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #9CDCFE\">header<\/span><span style=\"color: #D4D4D4\"> == <\/span><span style=\"color: #9CDCFE\">decoded_token<\/span><span style=\"color: #D4D4D4\">.header);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><strong><code>token<\/code>\u51fa\u529b<\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Monaspace-Xenon.woff\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-Monaspace-Xenon,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#1E1E1E;font-style:italic;color:#D4D4D4\"><span style=\"border-bottom:1px solid rgba(234, 191, 191, 0.2)\">Zsh<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"token = eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpc3MiOiJleGFtcGxlQGV4YW1wbGUuY29tIiwic3ViIjoiMjlmZTQwNjQtNTFjNi00Yjc2LWIwMDEtMzhjNGUxZjE2YTU3IiwiYXVkIjoiZXhhbXBsZUBleGFtcGxlLmNvbS90ZXN0IiwiZXhwIjoxNzEzMjA5OTU3LCJpYXQiOjE3MTMyMDYzNTcsImp0aSI6IjE0YmVjMzU4LWM2NDUtNGViNy05NTIyLTdjNTYzNGI5MGI3YyJ9.9nTGY9jJXFMxUUMiZClpKMDFla6pu9qqWyXaCFJVyX0zrsIhs9DPcpl_-8EpmYJLrMpIqLNld8Ai_fdPg_9hwg\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #DCDCAA\">token<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">=<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpc3MiOiJleGFtcGxlQGV4YW1wbGUuY29tIiwic3ViIjoiMjlmZTQwNjQtNTFjNi00Yjc2LWIwMDEtMzhjNGUxZjE2YTU3IiwiYXVkIjoiZXhhbXBsZUBleGFtcGxlLmNvbS90ZXN0IiwiZXhwIjoxNzEzMjA5OTU3LCJpYXQiOjE3MTMyMDYzNTcsImp0aSI6IjE0YmVjMzU4LWM2NDUtNGViNy05NTIyLTdjNTYzNGI5MGI3YyJ9.9nTGY9jJXFMxUUMiZClpKMDFla6pu9qqWyXaCFJVyX0zrsIhs9DPcpl_-8EpmYJLrMpIqLNld8Ai_fdPg_9hwg<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><strong><code>header<\/code>\u3068<code>claims<\/code>\u5171\u306b\u30a8\u30f3\u30b3\u30fc\u30c9\u3055\u308c\u308b\u524d\u306e\u5024\u3068\u540c\u3058\u3068\u3044\u3046\u7d50\u679c\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Monaspace-Xenon.woff\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-Monaspace-Xenon,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#1E1E1E;font-style:italic;color:#D4D4D4\"><span style=\"border-bottom:1px solid rgba(234, 191, 191, 0.2)\">Zsh<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"test_claims == decoded_token.claims -&gt; true\nheader == decoded_token.header -&gt; true\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #DCDCAA\">test_claims<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">==<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">decoded_token.claims<\/span><span style=\"color: #D4D4D4\"> -&gt; <\/span><span style=\"color: #569CD6\">true<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">header<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">==<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">decoded_token.header<\/span><span style=\"color: #D4D4D4\"> -&gt; <\/span><span style=\"color: #569CD6\">true<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u30a8\u30f3\u30b3\u30fc\u30c9\u3055\u308c\u305f<code>tokne<\/code>\u306e\u5024\u306e\u78ba\u8a8d\u3068\u3001\u30c7\u30b3\u30fc\u30c9\u3055\u308c\u305f<code>header<\/code>\u3068<code>claims<\/code>\u306e\u5024\u304c\u6b63\u3057\u3044\u304b\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u4eca\u56de\u306fjsonwebtoken\u306e\u6319\u52d5\u3092\u78ba\u8a8d\u3057\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>docs.rs<\/p>\n\n\n<div class=\"linkcard\"><div class=\"lkc-external-wrap\"><a class=\"lkc-link no_icon\" href=\"https:\/\/docs.rs\/jsonwebtoken\/latest\/jsonwebtoken\/\" target=\"_blank\" rel=\"external noopener\"><div class=\"lkc-card\"><div class=\"lkc-content\"><figure class=\"lkc-thumbnail\"><img decoding=\"async\" class=\"lkc-thumbnail-img\" src=\"https:\/\/s.wordpress.com\/mshots\/v1\/https%3A%2F%2Fdocs.rs%2Fjsonwebtoken%2Flatest%2Fjsonwebtoken%2F?w=200\" alt=\"\" \/><\/figure><div class=\"lkc-title\"><div class=\"lkc-title-text\">jsonwebtoken - Rust<\/div><\/div><div class=\"lkc-url\">https:\/\/docs.rs\/jsonwebtoken\/latest\/jsonwebtoken\/<\/div><div class=\"lkc-excerpt\"><\/div><\/div><div class=\"lkc-info\"><img decoding=\"async\" class=\"lkc-favicon\" src=\"https:\/\/www.google.com\/s2\/favicons?domain=docs.rs\" alt=\"\" width=16 height=16 \/><div class=\"lkc-domain\">docs.rs<\/div><\/div><div class=\"clear\"><\/div><\/div><\/a><\/div><\/div>\n<p>Github<\/p>\n<div class=\"linkcard\"><div class=\"lkc-external-wrap\"><a class=\"lkc-link no_icon\" href=\"https:\/\/github.com\/Keats\/jsonwebtoken\" target=\"_blank\" rel=\"external noopener\"><div class=\"lkc-card\"><div class=\"lkc-content\"><figure class=\"lkc-thumbnail\"><img decoding=\"async\" class=\"lkc-thumbnail-img\" src=\"https:\/\/s.wordpress.com\/mshots\/v1\/https%3A%2F%2Fgithub.com%2FKeats%2Fjsonwebtoken?w=200\" alt=\"\" \/><\/figure><div class=\"lkc-title\"><div class=\"lkc-title-text\">GitHub - Keats\/jsonwebtoken: JWT lib in rust<\/div><\/div><div class=\"lkc-url\">https:\/\/github.com\/Keats\/jsonwebtoken<\/div><div class=\"lkc-excerpt\"><\/div><\/div><div class=\"lkc-info\"><img decoding=\"async\" class=\"lkc-favicon\" src=\"https:\/\/www.google.com\/s2\/favicons?domain=github.com\" alt=\"\" width=16 height=16 \/><div class=\"lkc-domain\">GitHub<\/div>&nbsp;<div class=\"lkc-share\"> <div class=\"lkc-sns-hb\">1 User<\/div> <div class=\"lkc-sns-po\">11 Pockets<\/div><\/div><\/div><div class=\"clear\"><\/div><\/div><\/a><\/div><\/div>\n\n<section class=\"b--jinr-block b--jinr-blogcard d--blogcard-hover-up d--blogcard-style1 d--blogcard-mysite t--round \"><div class=\"a--blogcard-label ef\">\u524d\u56de\u306e\u8a18\u4e8b<\/div><a class=\"o--blogcard-link t--round\" href=\"https:\/\/dsk-blog.com\/?p=65\"><div class=\"c--blogcard-image\"><img loading=\"lazy\" decoding=\"async\" class=\"a--blogcard-img-src\" width=\"128\" height=\"72\" src=\"https:\/\/dsk-blog.com\/wp-content\/uploads\/2024\/04\/DSK-BLOG-320x180.webp\" alt=\"\u521d\u3081\u3066\u306e\u6295\u7a3f\" \/><\/div><div class=\"a--blogcard-title d--bold\">\u521d\u3081\u3066\u306e\u6295\u7a3f<\/div><\/a><\/section>\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4eca\u56de\u306f\u5b9f\u88c5\u3068\u3044\u3046\u3088\u308a\u306f\u4f7f\u3044\u65b9\u3084\u6319\u52d5\u3092\u78ba\u8a8d\u3057\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002 JWT\u3068\u306f JWT\u306b\u3064\u3044\u3066\u306f\u3001\u3053\u3061\u3089\u306e\u8a18\u4e8b\u304c\u308f\u304b\u308a\u3084\u3059\u3044\u304b\u3068\u601d\u3044\u307e\u3059\u3002 jsonwebtoken\u3092\u4f7f\u3063\u3066\u307f\u308b Cargo.toml\u306b\u4ee5\u4e0b\u3092\u8ffd\u52a0 \u30a4\u30f3\u30dd\u30fc\u30c8 Cl [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":97,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jinr_url_youtube":"","_jinr_pip_youtube":false,"_jinr_time_youtube":"","_jinr_thumb_youtube":"","_jinr_media_youtube":"","_jinr_category_edit":false,"_jinr_category":"","_jinr_title_display":false,"_jinr_snsbutton_display":false,"_jinr_ads_display":false,"_jinr_thumbnail_display":false,"_jinr_profile_display":false,"_jinr_relatedpost_display":false,"_jinr_sidebar1col_display":false,"_jinr_sidebar2col_display":false,"_jinr_seotitle_display":"","_jinr_description_display":"","_jinr_keyword_display":"","_jinr_hastag_display":"","_jinr_canonical_display":"","_jinr_noindex_display":false,"_jinr_paidpost":false,"_jinr_paidpost_product_id":"","_jinr_headtag_article":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-113","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"views":"391","_links":{"self":[{"href":"https:\/\/dsk-blog.com\/index.php?rest_route=\/wp\/v2\/posts\/113","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dsk-blog.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dsk-blog.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dsk-blog.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dsk-blog.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=113"}],"version-history":[{"count":18,"href":"https:\/\/dsk-blog.com\/index.php?rest_route=\/wp\/v2\/posts\/113\/revisions"}],"predecessor-version":[{"id":134,"href":"https:\/\/dsk-blog.com\/index.php?rest_route=\/wp\/v2\/posts\/113\/revisions\/134"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dsk-blog.com\/index.php?rest_route=\/wp\/v2\/media\/97"}],"wp:attachment":[{"href":"https:\/\/dsk-blog.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=113"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dsk-blog.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=113"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dsk-blog.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}