{"id":106400,"date":"2025-04-27T00:56:13","date_gmt":"2025-04-26T20:26:13","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/how-to-obtain-an-oidc-id-token-for-spacetimedb-using-nextjs-and-auth0-1ci\/"},"modified":"2025-04-27T00:56:13","modified_gmt":"2025-04-26T20:26:13","slug":"how-to-obtain-an-oidc-id-token-for-spacetimedb-using-nextjs-and-auth0-1ci","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/how-to-obtain-an-oidc-id-token-for-spacetimedb-using-nextjs-and-auth0-1ci\/","title":{"rendered":"\u0646\u062d\u0648\u0647 \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u062f\u0646 \u06cc\u06a9 \u0646\u0634\u0627\u0646\u0647 \u0634\u0646\u0627\u0633\u0647 OIDC \u0628\u0631\u0627\u06cc SpacetImedB \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Next.js \u0648 Auth0"},"content":{"rendered":"<div data-article-id=\"2436834\" id=\"article-body\">\n<p>\u0633\u0644\u0627\u0645! \u0627\u0632 \u0622\u0646\u062c\u0627 \u06a9\u0647 \u0627\u0648\u0644\u06cc\u0646 \u0648\u06cc\u062f\u06cc\u0648\u06cc SpacetImedB \u0645\u0646\u062a\u0634\u0631 \u0634\u062f \u060c \u0645\u0646 \u0628\u0647 \u06cc\u06a9 \u0637\u0631\u0641\u062f\u0627\u0631 \u0639\u0638\u06cc\u0645 \u0627\u06cc\u0646 \u0641\u0646\u0627\u0648\u0631\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0645 \u0648 \u0628\u0631\u0627\u06cc \u0627\u0646\u062a\u0634\u0627\u0631 \u0628\u0627\u0646\u06a9 \u0627\u0637\u0644\u0627\u0639\u0627\u062a\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0633\u067e\u0627\u0633\u06af\u0632\u0627\u0631\u0645. \u0627\u0632 \u0631\u0648\u0632 \u0627\u0648\u0644 \u060c \u0645\u0646 \u062f\u0631 \u067e\u0631\u0648\u0698\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f \u0628\u0627 SpacetImedB \u0622\u0632\u0645\u0627\u06cc\u0634 \u06a9\u0631\u062f\u0645. \u0645\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0633\u0627\u062e\u062a \u06cc\u06a9 \u06af\u067e \u0633\u0627\u062f\u0647 \u0631\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0631\u062f\u0645 \u0648 \u0633\u067e\u0633 \u062a\u0635\u0645\u06cc\u0645 \u06af\u0631\u0641\u062a\u0645 \u0627\u0632 SpacetImedB \u062f\u0631 \u06cc\u06a9\u06cc \u0627\u0632 \u067e\u0631\u0648\u0698\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u0645: \u0628\u06cc\u0634 \u0627\u0632 \u062d\u062f \u060c \u06cc\u06a9 \u06a9\u0644\u06cc\u06a9 \u0648 \u0631\u0627\u06cc \u06af\u06cc\u0631\u06cc \u0631\u0648\u0632\u0645\u0631\u0647. \u0627\u06cc\u0646 \u067e\u0631\u0648\u0698\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0627\u06cc\u062f\u0647 \u0633\u0631\u06af\u0631\u0645 \u06a9\u0646\u0646\u062f\u0647 \u0622\u063a\u0627\u0632 \u0634\u062f \u060c \u0627\u0645\u0627 \u0641\u0647\u0645\u06cc\u062f\u0645 \u06a9\u0647 \u0627\u06cc\u0646 \u06cc\u06a9 \u0631\u0648\u0634 \u0639\u0627\u0644\u06cc \u0628\u0631\u0627\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0648 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062f\u0647 \u0647\u0627\u06cc \u0622\u06cc\u0646\u062f\u0647 \u0645\u0646 \u0627\u0633\u062a.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/how-to-obtain-an-oidc-id-token-for-spacetimedb-using-nextjs-and-auth0-1ci\/#%DA%86%D8%A7%D9%84%D8%B4_%D8%A7%D8%AD%D8%B1%D8%A7%D8%B2_%D9%87%D9%88%DB%8C%D8%AA_%D8%AF%D8%B1_SpacetImedB\" >\u0686\u0627\u0644\u0634 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u062f\u0631 SpacetImedB<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/how-to-obtain-an-oidc-id-token-for-spacetimedb-using-nextjs-and-auth0-1ci\/#%D9%BE%DB%8C%D8%B4_%D9%86%DB%8C%D8%A7%D8%B2%D9%87%D8%A7%DB%8C\" >\u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/how-to-obtain-an-oidc-id-token-for-spacetimedb-using-nextjs-and-auth0-1ci\/#%D9%85%D8%B1%D8%AD%D9%84%D9%87_1_%D9%85%D8%B4%D8%AA%D8%B1%DB%8C_%D9%88_%D9%85%D8%A7%DA%98%D9%88%D9%84_SpacetImedB_%D8%AE%D9%88%D8%AF_%D8%B1%D8%A7_%D8%AA%D9%86%D8%B8%DB%8C%D9%85_%DA%A9%D9%86%DB%8C%D8%AF\" >\u0645\u0631\u062d\u0644\u0647 1: \u0645\u0634\u062a\u0631\u06cc \u0648 \u0645\u0627\u0698\u0648\u0644 SpacetImedB \u062e\u0648\u062f \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/how-to-obtain-an-oidc-id-token-for-spacetimedb-using-nextjs-and-auth0-1ci\/#%D9%85%D9%81%D8%A7%D9%87%DB%8C%D9%85_%DA%A9%D9%84%DB%8C%D8%AF%DB%8C_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%AF%D8%B1%DA%A9\" >\u0645\u0641\u0627\u0647\u06cc\u0645 \u06a9\u0644\u06cc\u062f\u06cc \u0628\u0631\u0627\u06cc \u062f\u0631\u06a9<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/how-to-obtain-an-oidc-id-token-for-spacetimedb-using-nextjs-and-auth0-1ci\/#%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C_%D8%A2%D8%A8%DA%AF%D8%B1%D9%85\" >\u0627\u062c\u0631\u0627\u06cc \u0622\u0628\u06af\u0631\u0645<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/how-to-obtain-an-oidc-id-token-for-spacetimedb-using-nextjs-and-auth0-1ci\/#%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_OIDC_%D8%A8%D8%B1%D8%A7%DB%8C_Auth0\" >\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc OIDC \u0628\u0631\u0627\u06cc Auth0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/how-to-obtain-an-oidc-id-token-for-spacetimedb-using-nextjs-and-auth0-1ci\/#%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C_%D8%A7%D8%B1%D8%A7%D8%A6%D9%87_%D8%AF%D9%87%D9%86%D8%AF%D9%87_%D8%B3%D8%A7%D8%AF%D9%87_%D8%AF%D8%B1_Nextjs\" >\u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0633\u0627\u062f\u0647 \u062f\u0631 Next.js<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/how-to-obtain-an-oidc-id-token-for-spacetimedb-using-nextjs-and-auth0-1ci\/#%D8%A7%D8%AA%D8%B5%D8%A7%D9%84_%D8%A8%D9%87_spacetimedb_%D8%A8%D8%A7_%D9%86%D8%B4%D8%A7%D9%86%D9%87_%D8%B4%D9%86%D8%A7%D8%B3%D9%87\" >\u0627\u062a\u0635\u0627\u0644 \u0628\u0647 spacetimedb \u0628\u0627 \u0646\u0634\u0627\u0646\u0647 \u0634\u0646\u0627\u0633\u0647<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/how-to-obtain-an-oidc-id-token-for-spacetimedb-using-nextjs-and-auth0-1ci\/#%D9%86%D8%B4%D8%A7%D9%86%D9%87_%D9%87%D8%A7%DB%8C_%D9%85%D9%88%D9%82%D8%AA_%D9%88_%D8%AA%D8%A3%DB%8C%DB%8C%D8%AF_%D8%AA%D9%86%D8%B8%DB%8C%D9%85%D8%A7%D8%AA_%D8%AE%D9%88%D8%AF\" >\u0646\u0634\u0627\u0646\u0647 \u0647\u0627\u06cc \u0645\u0648\u0642\u062a \u0648 \u062a\u0623\u06cc\u06cc\u062f \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u062e\u0648\u062f<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/nabfollower.com\/blog\/how-to-obtain-an-oidc-id-token-for-spacetimedb-using-nextjs-and-auth0-1ci\/#spacetimedb_%D9%86%D8%B4%D8%A7%D9%86%D9%87_%D9%87%D8%A7%DB%8C_%D9%85%D9%88%D9%82%D8%AA\" >spacetimedb \u0646\u0634\u0627\u0646\u0647 \u0647\u0627\u06cc \u0645\u0648\u0642\u062a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/nabfollower.com\/blog\/how-to-obtain-an-oidc-id-token-for-spacetimedb-using-nextjs-and-auth0-1ci\/#%D9%86%D8%AD%D9%88%D9%87_%D8%AA%D8%A3%DB%8C%DB%8C%D8%AF_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%D8%AE%D9%88%D8%AF\" >\u0646\u062d\u0648\u0647 \u062a\u0623\u06cc\u06cc\u062f \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u062e\u0648\u062f<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/nabfollower.com\/blog\/how-to-obtain-an-oidc-id-token-for-spacetimedb-using-nextjs-and-auth0-1ci\/#%D9%BE%D8%A7%DB%8C%D8%A7%D9%86\" >\u067e\u0627\u06cc\u0627\u0646<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%DA%86%D8%A7%D9%84%D8%B4_%D8%A7%D8%AD%D8%B1%D8%A7%D8%B2_%D9%87%D9%88%DB%8C%D8%AA_%D8%AF%D8%B1_SpacetImedB\"><\/span>\n<p>  \u0686\u0627\u0644\u0634 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u062f\u0631 SpacetImedB<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0645\u0633\u062a\u0646\u062f\u0627\u062a Spacetime \u0628\u06cc\u0634\u062a\u0631 \u0628\u0631 \u0633\u0646\u0627\u0631\u06cc\u0648\u0647\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062a\u0645\u0631\u06a9\u0632 \u0627\u0633\u062a. \u0646\u062d\u0648\u0647 \u0633\u0627\u062e\u062a \u06cc\u06a9 \u06af\u067e \u06cc\u0627 \u06cc\u06a9 \u0628\u0627\u0632\u06cc \u06a9\u0648\u0686\u06a9 \u0628\u0647 \u0633\u0628\u06a9 Agar.io \u061b \u0627\u0645\u0627 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u0647\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0639\u0645\u06cc\u0642 \u062a\u0623\u06cc\u06cc\u062f \u0627\u0639\u062a\u0628\u0627\u0631 \u0648 \u0645\u062c\u0648\u0632 \u0631\u0627 \u067e\u0648\u0634\u0634 \u0646\u0645\u06cc \u062f\u0647\u0646\u062f. \u0628\u0631\u0627\u06cc \u0645\u0648\u0627\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 MMORPG (\u062c\u0627\u06cc\u06cc \u06a9\u0647 SpacetImedB \u0648\u0627\u0642\u0639\u0627\u064b \u0645\u06cc \u062f\u0631\u062e\u0634\u062f) \u060c Auth \u0642\u0648\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a. SpacetImedB \u0647\u06cc\u0686 \u0645\u06a9\u0627\u0646\u06cc\u0633\u0645 \u0645\u062c\u0648\u0632 \u062f\u0627\u062e\u0644\u06cc \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0646\u0645\u06cc \u062f\u0647\u062f \u060c \u0648 \u0628\u0631\u0627\u06cc \u062a\u0623\u06cc\u06cc\u062f \u0627\u0639\u062a\u0628\u0627\u0631 \u0627\u0646\u062a\u0638\u0627\u0631 \u062f\u0627\u0631\u062f \u06a9\u0647 \u06cc\u06a9 \u0634\u0646\u0627\u0633\u0647 \u0634\u0646\u0627\u0633\u0647 \u0635\u0627\u062f\u0631 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u06cc\u06a9 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0633\u0627\u0632\u06af\u0627\u0631 \u0628\u0627 Connect OpenID \u0635\u0627\u062f\u0631 \u0634\u0648\u062f. \u062f\u0631 \u0639\u0645\u0644 \u060c \u0627\u06cc\u0646 \u0628\u062f\u0627\u0646 \u0645\u0639\u0646\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u0627 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0628\u0627\u06cc\u062f \u062c\u0631\u06cc\u0627\u0646 AUTH \u062e\u0648\u062f \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0631\u062f\u0647 \u0648 \u0627\u0632 \u06cc\u06a9 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 OIDC \u0634\u062e\u0635 \u062b\u0627\u0644\u062b \u06cc\u06a9 \u0646\u0634\u0627\u0646\u0647 \u0628\u062f\u0633\u062a \u0622\u0648\u0631\u06cc\u0645.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u060c Auth0 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u062f\u0645 \u0648 \u0627\u0632 Next.js \u062f\u0631 \u062c\u0644\u0648\u06cc \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0645. \u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0627 \u062f\u0631 \u0627\u0635\u0644 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u062a\u06a9 \u0635\u0641\u062d\u0647 \u0627\u06cc (SPA) \u0627\u0633\u062a \u060c \u0646\u0647 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 MPA \u06cc\u0627 \u0633\u0631\u0648\u0631. \u0645\u0646 \u0647\u0646\u0648\u0632 \u0628\u0627 \u0633\u0646\u0627\u0631\u06cc\u0648\u06cc Auth \u0637\u0631\u0641 \u0633\u0631\u0648\u0631 \u0645\u0642\u0627\u0628\u0644\u0647 \u0646\u06a9\u0631\u062f\u0647 \u0627\u0645.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%BE%DB%8C%D8%B4_%D9%86%DB%8C%D8%A7%D8%B2%D9%87%D8%A7%DB%8C\"><\/span>\n<p>  \u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>\u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 SpacetImedB \u0628\u0627 \u06a9\u062f \u0645\u0627\u0698\u0648\u0644 \u0648 \u0645\u0646\u0637\u0642 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u062e\u0648\u062f \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u062a\u0646\u0638\u06cc\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a<\/li>\n<li>\u06cc\u06a9 \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc Auth0 \u0628\u0627 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u062a\u06a9 \u0635\u0641\u062d\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0634\u062f\u0647<\/li>\n<li>\u06cc\u06a9 \u0645\u0634\u062a\u0631\u06cc Frontend (\u0645\u0646 \u0627\u0632 Next.js \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0645 \u060c \u0627\u0645\u0627 \u0647\u0631 \u0686\u0627\u0631\u0686\u0648\u0628 \u0622\u0628\u06af\u0631\u0645 \u06a9\u0627\u0631 \u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f)<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%B1%D8%AD%D9%84%D9%87_1_%D9%85%D8%B4%D8%AA%D8%B1%DB%8C_%D9%88_%D9%85%D8%A7%DA%98%D9%88%D9%84_SpacetImedB_%D8%AE%D9%88%D8%AF_%D8%B1%D8%A7_%D8%AA%D9%86%D8%B8%DB%8C%D9%85_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u0645\u0631\u062d\u0644\u0647 1: \u0645\u0634\u062a\u0631\u06cc \u0648 \u0645\u0627\u0698\u0648\u0644 SpacetImedB \u062e\u0648\u062f \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0631\u0627\u06cc \u0632\u0628\u0627\u0646 \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u062e\u0648\u062f \u0627\u0632 QuickStarts \u0631\u0633\u0645\u06cc \u067e\u06cc\u0631\u0648\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D9%81%D8%A7%D9%87%DB%8C%D9%85_%DA%A9%D9%84%DB%8C%D8%AF%DB%8C_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%AF%D8%B1%DA%A9\"><\/span>\n<p>  \u0645\u0641\u0627\u0647\u06cc\u0645 \u06a9\u0644\u06cc\u062f\u06cc \u0628\u0631\u0627\u06cc \u062f\u0631\u06a9<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0642\u0628\u0644 \u0627\u0632 \u0627\u062c\u0631\u0627\u06cc \u062c\u0631\u06cc\u0627\u0646 \u060c \u0627\u06cc\u0646 \u0646\u06a9\u0627\u062a \u0631\u0627 \u062f\u0631 \u062e\u0627\u0637\u0631 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f:<\/p>\n<ol>\n<li>\n<p><strong>\u0646\u0634\u0627\u0646\u0647 \u0648 \u0647\u0648\u06cc\u062a<\/strong>: \u0646\u0634\u0627\u0646\u0647 \u0627\u06cc \u06a9\u0647 \u0634\u0645\u0627 \u0628\u0647 SpacetImedB \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u06cc\u062f \u060c \u0628\u0647 \u0622\u0646 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u0647\u0648\u06cc\u062a \u0645\u0634\u062a\u0631\u06cc \u0631\u0627 \u0627\u062e\u062a\u0635\u0627\u0635 \u062f\u0627\u062f\u0647 \u0648 \u0627\u062f\u0627\u0645\u0647 \u062f\u0647\u062f. \u0628\u0647 \u0639\u0628\u0627\u0631\u062a \u0633\u0627\u062f\u0647: \u0647\u0645\u0627\u0646 \u062a\u0648\u06a9\u0646 \u06a9\u0627\u0631\u0628\u0631 \u0647\u0645\u06cc\u0634\u0647 \u0647\u0648\u06cc\u062a SpacetImedB \u0631\u0627 \u0628\u0647 \u062f\u0633\u062a \u0645\u06cc \u0622\u0648\u0631\u062f. \u0627\u06cc\u0646 \u0647\u0633\u062a\u0647 \u0627\u0635\u0644\u06cc \u0686\u06af\u0648\u0646\u06af\u06cc \u067e\u0627\u06cc\u062f\u0627\u0631\u06cc \u0627\u062a\u0635\u0627\u0644\u0627\u062a \u0627\u0633\u062a.<\/p>\n<\/li>\n<li>\n<p><strong>\u0641\u0642\u0637 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f<\/strong>: spacetimedb \u0628\u0647 \u0637\u0648\u0631 \u062e\u0627\u0635 \u0628\u0647 \u0646\u0634\u0627\u0646\u0647 \u0634\u0646\u0627\u0633\u0647 (\u0646\u0647 \u0646\u0634\u0627\u0646\u0647 \u062f\u0633\u062a\u0631\u0633\u06cc \u06cc\u0627 \u0647\u0631 \u0646\u0634\u0627\u0646\u0647 \u062f\u06cc\u06af\u0631\u06cc) \u06a9\u0647 \u062a\u0648\u0633\u0637 \u06cc\u06a9 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 OIDC \u0635\u0627\u062f\u0631 \u0634\u062f\u0647 \u0627\u0633\u062a \u060c \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f.<\/p>\n<\/li>\n<li>\n<p><strong>\u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647<\/strong>: \u0647\u0631 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 AUTH \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0627\u0645\u0644 OIDC \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0646\u0645\u06cc \u06a9\u0646\u062f. \u0647\u0645\u06cc\u0634\u0647 \u0633\u0627\u0632\u06af\u0627\u0631\u06cc OIDC \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0627\u0646\u062a\u062e\u0627\u0628 \u0634\u062f\u0647 \u062e\u0648\u062f \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f. Auth0 \u06a9\u0627\u0645\u0644\u0627\u064b \u0633\u0627\u0632\u06af\u0627\u0631 \u0628\u0627 OIDC \u0627\u0633\u062a.<\/p>\n<\/li>\n<li>\n<p><strong>\u062e\u062f\u0645\u0627\u062a AUTH<\/strong>: \u06cc\u06a9 \u062c\u0645\u0639 \u06a9\u0646\u0646\u062f\u0647 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0645\u0627\u0646\u0646\u062f AUTH0 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0627\u0632 \u0686\u0646\u062f\u06cc\u0646 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0647\u0648\u06cc\u062a (Google \u060c Twitter \u0648 \u063a\u06cc\u0631\u0647) \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u06a9\u0646\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u06cc\u06a9 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0645\u0627\u0646\u0646\u062f Google \u0631\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0627\u062f\u063a\u0627\u0645 \u06a9\u0646\u06cc\u062f \u060c \u0627\u0645\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u06a9 \u062c\u0645\u0639 \u06a9\u0646\u0646\u062f\u0647 \u0627\u063a\u0644\u0628 \u0627\u0646\u0639\u0637\u0627\u0641 \u067e\u0630\u06cc\u0631\u06cc \u0628\u06cc\u0634\u062a\u0631\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u062e\u0648\u062f \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<\/li>\n<\/ol>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C_%D8%A2%D8%A8%DA%AF%D8%B1%D9%85\"><\/span>\n<p>  \u0627\u062c\u0631\u0627\u06cc \u0622\u0628\u06af\u0631\u0645<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc React\/Next.js \u060c \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc \u06a9\u0646\u0645 \u0627\u0632 Rect-OIDC-Context \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u0628\u0631\u0627\u06cc \u0633\u0627\u06cc\u0631 \u0686\u0627\u0631\u0686\u0648\u0628 \u0647\u0627\u06cc TypeScript \u060c OIDC-Client-TS \u0628\u0647 \u062e\u0648\u0628\u06cc \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_OIDC_%D8%A8%D8%B1%D8%A7%DB%8C_Auth0\"><\/span>\n<p>  \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc OIDC \u0628\u0631\u0627\u06cc Auth0<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">oidcConfig<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\n  <span class=\"na\">authority<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">https:\/\/dev-aaaaAAAAAAAaaaa.us.auth0.com<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"c1\">\/\/ Your Auth0 OIDC issuer URL in app it will be Domain<\/span>\n  <span class=\"na\">client_id<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">AAaaaAAAAaaaaaAAAAaAa<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>                 <span class=\"c1\">\/\/ Your Auth0 Client ID<\/span>\n  <span class=\"na\">redirect_uri<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">http:\/\/localhost:3001\/callback<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>     <span class=\"c1\">\/\/ Redirect URI to receive the tokens<\/span>\n  <span class=\"na\">post_logout_redirect_uri<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">http:\/\/localhost:3001<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>   <span class=\"c1\">\/\/ Where to go after logout<\/span>\n  <span class=\"na\">response_type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">code<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>                              <span class=\"c1\">\/\/ Use Authorization Code Flow<\/span>\n  <span class=\"na\">scope<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">openid email profile<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>                     <span class=\"c1\">\/\/ OIDC scopes (openid required)<\/span>\n<span class=\"p\">};<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C_%D8%A7%D8%B1%D8%A7%D8%A6%D9%87_%D8%AF%D9%87%D9%86%D8%AF%D9%87_%D8%B3%D8%A7%D8%AF%D9%87_%D8%AF%D8%B1_Nextjs\"><\/span>\n<p>  \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0633\u0627\u062f\u0647 \u062f\u0631 Next.js<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">AuthProvider<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react-oidc-context<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">Providers<\/span><span class=\"p\">({<\/span> <span class=\"nx\">children<\/span> <span class=\"p\">})<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return<\/span> <span class=\"o\">&lt;<\/span><span class=\"nx\">AuthProvider<\/span> <span class=\"p\">{...<\/span><span class=\"nx\">oidcConfig<\/span><span class=\"p\">}<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">{<\/span><span class=\"nx\">children<\/span><span class=\"p\">}<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/AuthProvider&gt;<\/span><span class=\"err\">;\n<\/span><span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A7%D8%AA%D8%B5%D8%A7%D9%84_%D8%A8%D9%87_spacetimedb_%D8%A8%D8%A7_%D9%86%D8%B4%D8%A7%D9%86%D9%87_%D8%B4%D9%86%D8%A7%D8%B3%D9%87\"><\/span>\n<p>  \u0627\u062a\u0635\u0627\u0644 \u0628\u0647 spacetimedb \u0628\u0627 \u0646\u0634\u0627\u0646\u0647 \u0634\u0646\u0627\u0633\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">useAuth<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react-oidc-context<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">useEffect<\/span><span class=\"p\">,<\/span> <span class=\"nx\">useState<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">DbConnection<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@module-bingings<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span> <span class=\"c1\">\/\/ generated module bindings<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">SpacetimeConnector<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">auth<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useAuth<\/span><span class=\"p\">();<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">identity<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setIdentity<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useState<\/span><span class=\"p\">(<\/span><span class=\"kc\">null<\/span><span class=\"p\">);<\/span>\n\n  <span class=\"nf\">useEffect<\/span><span class=\"p\">(()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">auth<\/span><span class=\"p\">.<\/span><span class=\"nx\">isAuthenticated<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"nx\">auth<\/span><span class=\"p\">.<\/span><span class=\"nx\">user<\/span><span class=\"p\">.<\/span><span class=\"nx\">id_token<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n      <span class=\"kd\">const<\/span> <span class=\"nx\">conn<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">DbConnection<\/span><span class=\"p\">.<\/span><span class=\"nf\">builder<\/span><span class=\"p\">()<\/span>\n        <span class=\"p\">.<\/span><span class=\"nf\">withUri<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">spacetime:\/\/my-project.spacetimedb.net<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span>\n        <span class=\"p\">.<\/span><span class=\"nf\">withModuleName<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">my_module<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span>\n        <span class=\"p\">.<\/span><span class=\"nf\">withToken<\/span><span class=\"p\">(<\/span><span class=\"nx\">auth<\/span><span class=\"p\">.<\/span><span class=\"nx\">user<\/span><span class=\"p\">.<\/span><span class=\"nx\">id_token<\/span><span class=\"p\">)<\/span>\n        <span class=\"p\">.<\/span><span class=\"nf\">onConnect<\/span><span class=\"p\">((<\/span><span class=\"nx\">conn<\/span><span class=\"p\">,<\/span> <span class=\"nx\">identity<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n          <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"s2\">`Connected with identity: <\/span><span class=\"p\">${<\/span><span class=\"nx\">identity<\/span><span class=\"p\">}<\/span><span class=\"s2\">`<\/span><span class=\"p\">);<\/span>\n          <span class=\"nf\">setIdentity<\/span><span class=\"p\">(<\/span><span class=\"nx\">identity<\/span><span class=\"p\">);<\/span>\n        <span class=\"p\">})<\/span>\n        <span class=\"p\">.<\/span><span class=\"nf\">build<\/span><span class=\"p\">();<\/span>\n\n      <span class=\"k\">return <\/span><span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nx\">conn<\/span><span class=\"p\">.<\/span><span class=\"nf\">close<\/span><span class=\"p\">();<\/span>\n    <span class=\"p\">}<\/span>\n  <span class=\"p\">},<\/span> <span class=\"p\">[<\/span><span class=\"nx\">auth<\/span><span class=\"p\">.<\/span><span class=\"nx\">isAuthenticated<\/span><span class=\"p\">,<\/span> <span class=\"nx\">auth<\/span><span class=\"p\">.<\/span><span class=\"nx\">user<\/span><span class=\"p\">]);<\/span>\n\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"o\">&lt;<\/span><span class=\"nx\">div<\/span><span class=\"o\">&gt;<\/span>\n      <span class=\"p\">{<\/span><span class=\"nx\">identity<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"o\">&lt;<\/span><span class=\"nx\">p<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">Your<\/span> <span class=\"nx\">SpacetimeDB<\/span> <span class=\"na\">Identity<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span><span class=\"nx\">identity<\/span><span class=\"p\">}<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/p&gt;<\/span><span class=\"err\">}\n<\/span>    <span class=\"o\">&lt;<\/span><span class=\"sr\">\/div<\/span><span class=\"err\">&gt;\n<\/span>  <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%86%D8%B4%D8%A7%D9%86%D9%87_%D9%87%D8%A7%DB%8C_%D9%85%D9%88%D9%82%D8%AA_%D9%88_%D8%AA%D8%A3%DB%8C%DB%8C%D8%AF_%D8%AA%D9%86%D8%B8%DB%8C%D9%85%D8%A7%D8%AA_%D8%AE%D9%88%D8%AF\"><\/span>\n<p>  \u0646\u0634\u0627\u0646\u0647 \u0647\u0627\u06cc \u0645\u0648\u0642\u062a \u0648 \u062a\u0623\u06cc\u06cc\u062f \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u062e\u0648\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"spacetimedb_%D9%86%D8%B4%D8%A7%D9%86%D9%87_%D9%87%D8%A7%DB%8C_%D9%85%D9%88%D9%82%D8%AA\"><\/span>\n<p>  spacetimedb \u0646\u0634\u0627\u0646\u0647 \u0647\u0627\u06cc \u0645\u0648\u0642\u062a<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062f\u0631 <code>onConnect<\/code> \u0627\u0633\u062a\u062f\u0644\u0627\u0644 \u0633\u0648\u0645 Callback \u06cc\u06a9 \u0646\u0634\u0627\u0646\u0647 \u0645\u0648\u0642\u062a SpacetImedB \u0627\u0633\u062a \u0627\u06af\u0631 \u0634\u0645\u0627 \u06cc\u06a9 \u062a\u0648\u06a9\u0646 \u0634\u0646\u0627\u0633\u0647 \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0622\u0646 \u062a\u0647\u06cc\u0647 \u0646\u06a9\u0631\u062f\u06cc\u062f <code>.withToken()<\/code>\u0628\u0634\u0631 spacetimedb \u0627\u06cc\u0646 \u062e\u0648\u062f\u06a9\u0634\u06cc \u0631\u0627 \u0635\u0627\u062f\u0631 \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06af\u0631 \u0628\u0647 Auth \u062e\u0627\u0631\u062c\u06cc \u0627\u062d\u062a\u06cc\u0627\u062c \u062f\u0627\u0631\u06cc\u062f \u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u062e\u06cc\u0627\u0644 \u0631\u0627\u062d\u062a \u0646\u0634\u0627\u0646\u0647 \u0645\u0648\u0642\u062a \u0631\u0627 \u0646\u0627\u062f\u06cc\u062f\u0647 \u0628\u06af\u06cc\u0631\u06cc\u062f.<\/p>\n<p>\u0646\u0634\u0627\u0646\u0647 \u0647\u0627\u06cc \u0645\u0648\u0642\u062a \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0633\u06cc\u0633\u062a\u0645 AUTH \u062e\u0627\u0631\u062c\u06cc \u0646\u062f\u0627\u0631\u06cc\u062f \u060c \u0645\u0641\u06cc\u062f \u0647\u0633\u062a\u0646\u062f \u0627\u0645\u0627 \u0647\u0646\u0648\u0632 \u0647\u0645 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u067e\u0634\u062a \u0633\u0631 \u0647\u0645 \u062c\u0644\u0633\u0647:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"c1\">\/\/ Without external auth (using the temporary SpacetimeDB token)<\/span>\n<span class=\"p\">.<\/span><span class=\"nf\">onConnect<\/span><span class=\"p\">((<\/span><span class=\"nx\">conn<\/span><span class=\"p\">,<\/span> <span class=\"nx\">identity<\/span><span class=\"p\">,<\/span> <span class=\"nx\">tempToken<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"s2\">`Connected with identity: <\/span><span class=\"p\">${<\/span><span class=\"nx\">identity<\/span><span class=\"p\">}<\/span><span class=\"s2\">`<\/span><span class=\"p\">);<\/span>\n  <span class=\"nx\">localStorage<\/span><span class=\"p\">.<\/span><span class=\"nf\">setItem<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">spacetime_temp_token<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"nx\">tempToken<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">})<\/span>\n\n<span class=\"c1\">\/\/ With OIDC ID Token<\/span>\n<span class=\"p\">.<\/span><span class=\"nf\">onConnect<\/span><span class=\"p\">((<\/span><span class=\"nx\">conn<\/span><span class=\"p\">,<\/span> <span class=\"nx\">identity<\/span><span class=\"p\">,<\/span> <span class=\"nx\">_tempToken<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"s2\">`Connected with identity: <\/span><span class=\"p\">${<\/span><span class=\"nx\">identity<\/span><span class=\"p\">}<\/span><span class=\"s2\">`<\/span><span class=\"p\">);<\/span>\n  <span class=\"c1\">\/\/ We ignore the temporary token when using an OIDC ID Token<\/span>\n<span class=\"p\">})<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D9%86%D8%AD%D9%88%D9%87_%D8%AA%D8%A3%DB%8C%DB%8C%D8%AF_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%D8%AE%D9%88%D8%AF\"><\/span>\n<p>  \u0646\u062d\u0648\u0647 \u062a\u0623\u06cc\u06cc\u062f \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u062e\u0648\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0647\u0645\u0627\u0646 \u06a9\u0627\u0631\u0628\u0631 \u0645\u0639\u062a\u0628\u0631 \u0647\u0645\u06cc\u0634\u0647 \u0647\u0648\u06cc\u062a SpacetImedB \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc \u06a9\u0646\u062f:<\/p>\n<ol>\n<li>\u0648\u0627\u0631\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0634\u0648\u06cc\u062f.<\/li>\n<li>\u0628\u0647 SpacetImedB \u0648\u0635\u0644 \u0634\u0648\u06cc\u062f \u0648 \u0647\u0648\u06cc\u062a \u0628\u0631\u06af\u0634\u062a\u06cc \u0631\u0627 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u0635\u0641\u062d\u0647 \u0631\u0627 \u062a\u0627\u0632\u0647 \u06a9\u0646\u06cc\u062f \u06cc\u0627 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0645\u0631\u0648\u0631\u06af\u0631 \u0645\u062a\u0641\u0627\u0648\u062a \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u0628\u0647 \u0647\u0645\u0627\u0646 \u06a9\u0627\u0631\u0628\u0631 \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u062f.<\/li>\n<li>\u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0647\u0648\u06cc\u062a \u0628\u062f\u0648\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u0628\u0627\u0642\u06cc \u0645\u06cc \u0645\u0627\u0646\u062f.\n<\/li>\n<\/ol>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"p\">.<\/span><span class=\"nf\">onConnect<\/span><span class=\"p\">((<\/span><span class=\"nx\">conn<\/span><span class=\"p\">,<\/span> <span class=\"nx\">identity<\/span><span class=\"p\">,<\/span> <span class=\"nx\">tempToken<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"s2\">`Connected with identity: <\/span><span class=\"p\">${<\/span><span class=\"nx\">identity<\/span><span class=\"p\">}<\/span><span class=\"s2\">`<\/span><span class=\"p\">);<\/span>\n  <span class=\"c1\">\/\/ This identity should be stable for a single user<\/span>\n<span class=\"p\">})<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06af\u0631 \u0647\u0648\u06cc\u062a \u0628\u0631\u0627\u06cc \u0647\u0645\u0627\u0646 \u06a9\u0627\u0631\u0628\u0631 \u0645\u062a\u0641\u0627\u0648\u062a \u0627\u0633\u062a \u060c \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<ul>\n<li>\u0634\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0631\u0633\u0627\u0644 \u06cc\u06a9 \u0646\u0634\u0627\u0646\u0647 \u0634\u0646\u0627\u0633\u0647 OIDC \u0647\u0633\u062a\u06cc\u062f (\u06cc\u06a9 \u0646\u0634\u0627\u0646\u0647 \u062f\u0633\u062a\u0631\u0633\u06cc \u0646\u06cc\u0633\u062a).<\/li>\n<li>\u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 OIDC \u0634\u0645\u0627 \u0635\u062d\u06cc\u062d \u0627\u0633\u062a.<\/li>\n<li>\u0634\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062f\u0627\u0645\u0647 \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0627\u0632 \u0646\u0634\u0627\u0646\u0647 \u0647\u0627 \u0647\u0633\u062a\u06cc\u062f.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"%D9%BE%D8%A7%DB%8C%D8%A7%D9%86\"><\/span>\n<p>  \u067e\u0627\u06cc\u0627\u0646<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0645\u0646 \u0628\u0627 \u0633\u06cc\u0633\u062a\u0645 \u0647\u0627\u06cc \u062a\u0623\u06cc\u06cc\u062f \u0627\u0639\u062a\u0628\u0627\u0631 \u0648 \u0645\u062c\u0648\u0632 \u062a\u062c\u0631\u0628\u0647 \u0628\u0633\u06cc\u0627\u0631 \u0645\u062d\u062f\u0648\u062f\u06cc \u062f\u0627\u0634\u062a\u0645 \u0648 OIDC \u0628\u0631\u0627\u06cc \u0645\u0646 \u06a9\u0627\u0645\u0644\u0627\u064b \u062c\u062f\u06cc\u062f \u0628\u0648\u062f. \u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u060c \u0627\u062f\u063a\u0627\u0645 \u0622\u0646 \u0628\u0633\u06cc\u0627\u0631 \u0632\u06cc\u0627\u062f \u0628\u0648\u062f \u0648 \u0645\u0646 \u0645\u0637\u0645\u0626\u0646 \u0646\u0628\u0648\u062f\u0645 \u06a9\u0647 \u0686\u0647 \u06a9\u0627\u0631\u06cc \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u0645. \u0627\u06a9\u0646\u0648\u0646 \u0628\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u0631\u0627\u062d\u0644 \u06a9\u0627\u0631 \u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u0645 \u0628\u0628\u06cc\u0646\u0645 \u06a9\u0647 \u062f\u0631 \u0648\u0627\u0642\u0639 \u06a9\u0627\u0645\u0644\u0627\u064b \u0642\u0627\u0628\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u0627\u0633\u062a.<\/p>\n<p>\u0628\u0627 \u062a\u0634\u06a9\u0631 \u0641\u0631\u0627\u0648\u0627\u0646 \u0627\u0632 Lethalchip (Chip) \u0628\u0631\u0627\u06cc \u0645\u062b\u0627\u0644 GitHub \u062e\u0648\u062f (SpacetImedB-Cookbook\/OIDC-Test). \u062a\u0648\u062c\u0647: \u0627\u06af\u0631\u0686\u0647 \u0645\u062b\u0627\u0644 \u0627\u0648 \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0644\u06cc \u0635\u062d\u06cc\u062d \u0627\u0633\u062a \u060c \u0627\u0645\u0627 \u0627\u0648 \u0628\u0647 \u0627\u0634\u062a\u0628\u0627\u0647 \u0627\u0632 \u06cc\u06a9 \u0646\u0634\u0627\u0646\u0647 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u062c\u0627\u06cc \u06cc\u06a9 \u0646\u0634\u0627\u0646\u0647 \u0634\u0646\u0627\u0633\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f \u060c \u06a9\u0647 \u0628\u0627\u0639\u062b \u062b\u0628\u0627\u062a \u0647\u0648\u06cc\u062a \u062f\u0631 \u062a\u0633\u062a \u0647\u0627\u06cc \u0645\u0646 \u0634\u062f.<\/p>\n<p>\u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0645 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627 \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u06a9\u0646\u062f \u062a\u0627 \u0628\u0627 \u06cc\u06a9 \u0633\u06cc\u0633\u062a\u0645 \u062a\u0623\u06cc\u06cc\u062f \u0627\u0639\u062a\u0628\u0627\u0631 OIDC \u0627\u0632 \u0637\u0631\u06cc\u0642 AUTH0 \u06cc\u0627 \u0633\u0627\u06cc\u0631 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0634\u06a9\u0627\u06cc\u062a OIDC \u060c SpacetImedB \u0631\u0627 \u062f\u0631 \u067e\u0631\u0648\u0698\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f \u0627\u062f\u063a\u0627\u0645 \u06a9\u0646\u06cc\u062f.<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0633\u0644\u0627\u0645! \u0627\u0632 \u0622\u0646\u062c\u0627 \u06a9\u0647 \u0627\u0648\u0644\u06cc\u0646 \u0648\u06cc\u062f\u06cc\u0648\u06cc SpacetImedB \u0645\u0646\u062a\u0634\u0631 \u0634\u062f \u060c \u0645\u0646 \u0628\u0647 \u06cc\u06a9 \u0637\u0631\u0641\u062f\u0627\u0631 \u0639\u0638\u06cc\u0645 \u0627\u06cc\u0646 \u0641\u0646\u0627\u0648\u0631\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0645 \u0648 \u0628\u0631\u0627\u06cc \u0627\u0646\u062a\u0634\u0627\u0631 \u0628\u0627\u0646\u06a9 \u0627\u0637\u0644\u0627\u0639\u0627\u062a\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0633\u067e\u0627\u0633\u06af\u0632\u0627\u0631\u0645. \u0627\u0632 \u0631\u0648\u0632 \u0627\u0648\u0644 \u060c \u0645\u0646 \u062f\u0631 \u067e\u0631\u0648\u0698\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f \u0628\u0627 SpacetImedB \u0622\u0632\u0645\u0627\u06cc\u0634 \u06a9\u0631\u062f\u0645. \u0645\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0633\u0627\u062e\u062a \u06cc\u06a9 \u06af\u067e \u0633\u0627\u062f\u0647 \u0631\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0631\u062f\u0645 \u0648 \u0633\u067e\u0633 \u062a\u0635\u0645\u06cc\u0645 \u06af\u0631\u0641\u062a\u0645 \u0627\u0632 SpacetImedB &hellip;<\/p>\n","protected":false},"author":2,"featured_media":106401,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-106400","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/106400","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=106400"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/106400\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/106401"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=106400"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=106400"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=106400"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}