
{"id":107363,"date":"2025-06-05T08:41:59","date_gmt":"2025-06-05T08:41:59","guid":{"rendered":"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d8%ad%d8%b1%d8%a7%d8%b2-%d9%87%d9%88%db%8c%d8%aa-%d9%88-%d9%85%d8%ac%d9%88%d8%b2%d8%af%d9%87%db%8c-%d8%af%d8%b1-react\/"},"modified":"2025-06-05T08:42:02","modified_gmt":"2025-06-05T08:42:02","slug":"%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d8%ad%d8%b1%d8%a7%d8%b2-%d9%87%d9%88%db%8c%d8%aa-%d9%88-%d9%85%d8%ac%d9%88%d8%b2%d8%af%d9%87%db%8c-%d8%af%d8%b1-react","status":"publish","type":"product","link":"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d8%ad%d8%b1%d8%a7%d8%b2-%d9%87%d9%88%db%8c%d8%aa-%d9%88-%d9%85%d8%ac%d9%88%d8%b2%d8%af%d9%87%db%8c-%d8%af%d8%b1-react\/","title":{"rendered":"\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0648 \u0645\u062c\u0648\u0632\u062f\u0647\u06cc \u062f\u0631 React"},"content":{"rendered":"<table class=\"course-info-table\" border=\"1\" cellpadding=\"8\" cellspacing=\"0\" style=\"width: 100%; margin-bottom: 20px; border-collapse: collapse;\">\n<tr>\n<th style=\"background-color: #f5f5f5; text-align: right; width: 40%;\">\u0646\u0627\u0645 \u0645\u062d\u0635\u0648\u0644 \u0628\u0647 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc<\/th>\n<td style=\"text-align: right;\">\u062f\u0627\u0646\u0644\u0648\u062f Pluralsight &#8211; Authentication and Authorization in React<\/td>\n<\/tr>\n<tr>\n<th style=\"background-color: #f5f5f5; text-align: right;\">\u0646\u0627\u0645 \u0645\u062d\u0635\u0648\u0644 \u0628\u0647 \u0641\u0627\u0631\u0633\u06cc<\/th>\n<td style=\"text-align: right;\">\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0648 \u0645\u062c\u0648\u0632\u062f\u0647\u06cc \u062f\u0631 React<\/td>\n<\/tr>\n<tr>\n<th style=\"background-color: #f5f5f5; text-align: right;\">\u0632\u0628\u0627\u0646<\/th>\n<td style=\"text-align: right;\">\u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0628\u0627 \u0632\u06cc\u0631\u0646\u0648\u06cc\u0633 \u0641\u0627\u0631\u0633\u06cc<\/td>\n<\/tr>\n<tr>\n<th style=\"background-color: #f5f5f5; text-align: right;\">\u0646\u0648\u0639 \u0645\u062d\u0635\u0648\u0644<\/th>\n<td style=\"text-align: right;\">\u0622\u0645\u0648\u0632\u0634 \u0648\u06cc\u062f\u06cc\u0648\u06cc\u06cc<\/td>\n<\/tr>\n<tr>\n<th style=\"background-color: #f5f5f5; text-align: right;\">\u0646\u062d\u0648\u0647 \u062a\u062d\u0648\u06cc\u0644<\/th>\n<td style=\"text-align: right;\">\u0628\u0647 \u0635\u0648\u0631\u062a \u062f\u0627\u0646\u0644\u0648\u062f\u06cc<\/td>\n<\/tr>\n<\/table>\n<div style=\"\r\n  background-color: #FFFBEA;\r\n  border: 1px solid #FCD34D;\r\n  border-left: 6px solid #FBBF24;\r\n  padding: 20px;\r\n  border-radius: 10px;\r\n  margin-top: 30px;\r\n  font-family: 'Vazirmatn', sans-serif;\r\n  color: #78350F;\r\n  line-height: 1.8;\r\n  box-shadow: 0 4px 12px rgba(0,0,0,0.04);\r\n\">\r\n  <strong style=\"display: block; font-size: 1.1rem; margin-bottom: 10px;\">\u062a\u0648\u062c\u0647 \u0645\u0647\u0645:<\/strong>\r\n  <p style=\"margin: 0;\">\r\n    \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647 \u0622\u0645\u0648\u0632\u0634\u06cc <span style=\"font-weight: bold;\">\u062f\u0627\u0646\u0644\u0648\u062f\u06cc<\/span> \u0628\u0648\u062f\u0647 \u0648 \u0647\u0645\u0631\u0627\u0647 \u0628\u0627 <span style=\"font-weight: bold;\">\u0632\u06cc\u0631\u0646\u0648\u06cc\u0633 \u0641\u0627\u0631\u0633\u06cc<\/span> \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u06af\u0631\u062f\u062f.\r\n  <\/p>\r\n  <p style=\"margin: 8px 0 0 0;\">\r\n    \u062d\u062f\u0627\u06a9\u062b\u0631 \u062a\u0627 <strong>\u06f2\u06f4 \u0633\u0627\u0639\u062a \u067e\u0633 \u0627\u0632 \u0633\u0641\u0627\u0631\u0634<\/strong>\u060c \u0644\u06cc\u0646\u06a9 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u062f\u0648\u0631\u0647 \u0628\u0631\u0627\u06cc \u0634\u0645\u0627 \u0633\u0627\u062e\u062a\u0647 \u0648 \u062c\u0647\u062a \u062f\u0627\u0646\u0644\u0648\u062f \u0627\u0631\u0633\u0627\u0644 \u062e\u0648\u0627\u0647\u062f \u0634\u062f.\r\n  <\/p>\r\n  <p style=\"margin: 8px 0 0 0;\">\r\n    \u062c\u0647\u062a \u067e\u06cc\u06af\u06cc\u0631\u06cc \u0633\u0641\u0627\u0631\u0634\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0648\u0627\u062a\u0633\u200c\u0627\u067e \u0628\u0627 \u0634\u0645\u0627\u0631\u0647 <strong>09395106248<\/strong> \u06cc\u0627 \u0622\u06cc\u062f\u06cc \u062a\u0644\u06af\u0631\u0627\u0645\u06cc <strong>@ma_limbs<\/strong> \u062f\u0631 \u062a\u0645\u0627\u0633 \u0628\u0627\u0634\u06cc\u062f.\r\n  <\/p>\r\n<\/div>\r\n\r\n\n<article class=\"violin-complex-pieces\" style=\"font-family: 'Vazirmatn', sans-serif;color: #2E2E2E;line-height: 1.75;max-width: 800px;margin: 40px auto;padding: 30px;background: #FFFFFF;border-radius: 12px;box-shadow: 0 6px 20px rgba(0,0,0,0.05);\">\n<h1>\u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0648 \u0645\u062c\u0648\u0632\u062f\u0647\u06cc \u062f\u0631 React<\/h1>\n<p>\n\u062f\u0631 \u062f\u0646\u06cc\u0627\u06cc \u0645\u062f\u0631\u0646 \u062a\u0648\u0633\u0639\u0647 \u0648\u0628\u060c \u0627\u0645\u0646\u06cc\u062a \u06cc\u06a9 \u0639\u0646\u0635\u0631 \u062d\u06cc\u0627\u062a\u06cc \u0627\u0633\u062a. \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc React\u060c \u0628\u0627 \u0645\u0627\u0647\u06cc\u062a \u067e\u0648\u06cc\u0627 \u0648 \u06a9\u0627\u0631\u0628\u0631\u0645\u062d\u0648\u0631 \u062e\u0648\u062f\u060c \u0646\u06cc\u0627\u0632 \u0645\u0628\u0631\u0645 \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645\u200c\u0647\u0627\u06cc \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a (Authentication) \u0648 \u0645\u062c\u0648\u0632\u062f\u0647\u06cc (Authorization) \u0642\u0648\u06cc \u062f\u0627\u0631\u0646\u062f \u062a\u0627 \u0627\u0632 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0648 \u0645\u0646\u0627\u0628\u0639 \u0645\u062d\u0627\u0641\u0638\u062a \u06a9\u0646\u0646\u062f. \u062f\u0648\u0631\u0647 Pluralsight \u062a\u062d\u062a \u0639\u0646\u0648\u0627\u0646 &#8220;Authentication and Authorization in React&#8221; \u0628\u0647 \u0637\u0648\u0631 \u062c\u0627\u0645\u0639 \u0628\u0647 \u0627\u06cc\u0646 \u062c\u0646\u0628\u0647\u200c\u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc \u0645\u06cc\u200c\u067e\u0631\u062f\u0627\u0632\u062f \u0648 \u0628\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 React \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc\u06cc \u0627\u0645\u0646 \u0648 \u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f \u0628\u0633\u0627\u0632\u0646\u062f. \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0647 \u0628\u0631\u0631\u0633\u06cc \u062c\u0632\u0626\u06cc\u0627\u062a \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647\u060c \u0622\u0646\u0686\u0647 \u0641\u0631\u0627\u06af\u06cc\u0631\u0627\u0646 \u0645\u06cc\u200c\u0622\u0645\u0648\u0632\u0646\u062f\u060c \u0645\u0632\u0627\u06cc\u0627\u06cc \u0622\u0646\u060c \u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632\u0647\u0627 \u0648 \u0633\u0627\u062e\u062a\u0627\u0631 \u06a9\u0644\u06cc \u0622\u0646 \u0645\u06cc\u200c\u067e\u0631\u062f\u0627\u0632\u062f \u062a\u0627 \u062f\u06cc\u062f\u06af\u0627\u0647\u06cc \u062c\u0627\u0645\u0639 \u0627\u0632 \u0645\u062d\u062a\u0648\u0627\u06cc \u0622\u0645\u0648\u0632\u0634\u06cc \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u062f.\n<\/p>\n<h2>\u0622\u0646\u0686\u0647 \u062f\u0631 \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u0622\u0645\u0648\u062e\u062a<\/h2>\n<div class='section-box'>\n<p>\u0627\u06cc\u0646 \u062f\u0648\u0631\u0647 \u0641\u0631\u0627\u062a\u0631 \u0627\u0632 \u0645\u0641\u0627\u0647\u06cc\u0645 \u0627\u0648\u0644\u06cc\u0647 \u0645\u06cc\u200c\u0631\u0648\u062f \u0648 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u0633\u06cc\u0633\u062a\u0645\u200c\u0647\u0627\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0631\u0627 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc React \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f. \u0641\u0631\u0627\u06af\u06cc\u0631\u0627\u0646 \u062f\u0631 \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647 \u0628\u0647 \u062f\u0631\u06a9 \u0639\u0645\u06cc\u0642\u06cc \u0627\u0632 \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u062f\u0633\u062a \u062e\u0648\u0627\u0647\u0646\u062f \u06cc\u0627\u0641\u062a:<\/p>\n<ul>\n<li><span class=\"highlight\">\u0645\u0628\u0627\u0646\u06cc \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0648 \u0645\u062c\u0648\u0632\u062f\u0647\u06cc:<\/span> \u062f\u0631\u06a9 \u062a\u0641\u0627\u0648\u062a\u200c\u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc \u0628\u06cc\u0646 AuthN (\u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u06a9\u0627\u0631\u0628\u0631) \u0648 AuthZ (\u062a\u0639\u06cc\u06cc\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc\u200c\u0647\u0627) \u0648 \u0627\u0647\u0645\u06cc\u062a \u0647\u0631 \u06cc\u06a9 \u062f\u0631 \u0627\u0645\u0646\u06cc\u062a \u0628\u0631\u0646\u0627\u0645\u0647.<\/li>\n<li><span class=\"highlight\">\u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a:<\/span> \u0627\u0632 \u062c\u0645\u0644\u0647 JSON Web Tokens (JWT)\u060c OAuth 2.0 \u0648 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0633\u0634\u0646 (Session-based) \u0628\u0627 \u062a\u0645\u0631\u06a9\u0632 \u0628\u0631 JWT \u0648 OAuth \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f\u0647\u0627\u06cc \u0631\u0627\u06cc\u062c.<\/li>\n<li><span class=\"highlight\">\u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0636\u0639\u06cc\u062a \u06a9\u0627\u0631\u0628\u0631:<\/span> \u0646\u062d\u0648\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0636\u0639\u06cc\u062a \u0648\u0631\u0648\u062f \u06a9\u0627\u0631\u0628\u0631 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u062a\u06a9\u200c\u0635\u0641\u062d\u0647\u200c\u0627\u06cc (SPA) \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f React \u0645\u0627\u0646\u0646\u062f Context API \u06cc\u0627 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0636\u0639\u06cc\u062a \u0646\u0638\u06cc\u0631 Redux.<\/li>\n<li><span class=\"highlight\">\u0645\u062d\u0627\u0641\u0638\u062a \u0627\u0632 \u0645\u0633\u06cc\u0631\u0647\u0627 (Route Protection):<\/span> \u0686\u06af\u0648\u0646\u06af\u06cc \u0645\u062d\u062f\u0648\u062f \u06a9\u0631\u062f\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u062e\u0627\u0635\u06cc \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0648\u0636\u0639\u06cc\u062a \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0648 \u0646\u0642\u0634 \u06a9\u0627\u0631\u0628\u0631 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 React Router.<\/li>\n<li><span class=\"highlight\">\u06a9\u0627\u0631 \u0628\u0627 API\u0647\u0627\u06cc \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a:<\/span> \u0646\u062d\u0648\u0647 \u062a\u0639\u0627\u0645\u0644 \u0627\u0645\u0646 \u0628\u0627 API\u0647\u0627\u06cc \u0628\u06a9\u200c\u0627\u0646\u062f \u0628\u0631\u0627\u06cc \u062b\u0628\u062a\u200c\u0646\u0627\u0645\u060c \u0648\u0631\u0648\u062f\u060c \u062e\u0631\u0648\u062c \u0648 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u06a9\u0627\u0631\u0628\u0631\u060c \u0648 \u0627\u0631\u0633\u0627\u0644 \u062a\u0648\u06a9\u0646\u200c\u0647\u0627\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc.<\/li>\n<li><span class=\"highlight\">\u0645\u062c\u0648\u0632\u062f\u0647\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0646\u0642\u0634 (Role-Based Access Control &#8211; RBAC):<\/span> \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0633\u06cc\u0633\u062a\u0645\u06cc \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u062f\u0633\u062a\u0631\u0633\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0631\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0646\u0642\u0634\u200c\u0647\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 (\u0645\u0627\u0646\u0646\u062f \u0645\u062f\u06cc\u0631\u060c \u06a9\u0627\u0631\u0628\u0631 \u0639\u0627\u062f\u06cc\u060c \u0648\u06cc\u0631\u0627\u06cc\u0634\u06af\u0631) \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u06cc\u062f.<\/li>\n<li><span class=\"highlight\">\u0628\u0647\u062a\u0631\u06cc\u0646 \u0634\u06cc\u0648\u0647\u200c\u0647\u0627 \u0648 \u0645\u0644\u0627\u062d\u0638\u0627\u062a \u0627\u0645\u0646\u06cc\u062a\u06cc:<\/span> \u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 \u0622\u0633\u06cc\u0628\u200c\u067e\u0630\u06cc\u0631\u06cc\u200c\u0647\u0627\u06cc \u0631\u0627\u06cc\u062c \u0648\u0628 \u0645\u0627\u0646\u0646\u062f XSS (Cross-Site Scripting) \u0648 CSRF (Cross-Site Request Forgery) \u0648 \u0646\u062d\u0648\u0647 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0622\u0646\u200c\u0647\u0627 \u062f\u0631 \u0627\u06a9\u0648\u0633\u06cc\u0633\u062a\u0645 React.<\/li>\n<\/ul>\n<\/div>\n<h2>\u0645\u0632\u0627\u06cc\u0627\u06cc \u0634\u0631\u06a9\u062a \u062f\u0631 \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647<\/h2>\n<div class='section-box'>\n<p>\u062a\u06a9\u0645\u06cc\u0644 \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647 \u0645\u0632\u0627\u06cc\u0627\u06cc \u0686\u0634\u0645\u06af\u06cc\u0631\u06cc \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 React \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u062e\u0648\u0627\u0647\u062f \u062f\u0627\u0634\u062a \u0648 \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0645\u0633\u06cc\u0631 \u062d\u0631\u0641\u0647\u200c\u0627\u06cc \u062e\u0648\u062f \u067e\u06cc\u0634 \u0645\u06cc\u200c\u0628\u0631\u062f:<\/p>\n<ul>\n<li><span class=\"highlight\">\u0627\u0641\u0632\u0627\u06cc\u0634 \u0627\u0645\u0646\u06cc\u062a \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627:<\/span> \u06a9\u0633\u0628 \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc \u0633\u0627\u062e\u062a \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc React \u06a9\u0647 \u062f\u0631 \u0628\u0631\u0627\u0628\u0631 \u062a\u0647\u062f\u06cc\u062f\u0627\u062a \u0627\u0645\u0646\u06cc\u062a\u06cc \u0631\u0627\u06cc\u062c \u0645\u0642\u0627\u0648\u0645 \u0647\u0633\u062a\u0646\u062f \u0648 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u0637\u0645\u0626\u0646 \u062d\u0641\u0638 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/li>\n<li><span class=\"highlight\">\u062a\u0633\u0644\u0637 \u0628\u0631 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f\u0647\u0627\u06cc \u0635\u0646\u0639\u062a\u06cc:<\/span> \u062f\u0631\u06a9 \u0648 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0648 \u0645\u062c\u0648\u0632\u062f\u0647\u06cc \u06a9\u0647 \u062f\u0631 \u0635\u0646\u0639\u062a \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 \u0628\u0647 \u0637\u0648\u0631 \u06af\u0633\u062a\u0631\u062f\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u0648 \u0645\u0648\u0631\u062f \u062a\u0623\u06cc\u06cc\u062f \u0645\u062a\u062e\u0635\u0635\u0627\u0646 \u0627\u0645\u0646\u06cc\u062a \u0647\u0633\u062a\u0646\u062f.<\/li>\n<li><span class=\"highlight\">\u0627\u0641\u0632\u0627\u06cc\u0634 \u0645\u0647\u0627\u0631\u062a\u200c\u0647\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 React:<\/span> \u0627\u0641\u0632\u0648\u062f\u0646 \u06cc\u06a9 \u0645\u0647\u0627\u0631\u062a \u062d\u06cc\u0627\u062a\u06cc \u0628\u0647 \u0645\u062c\u0645\u0648\u0639\u0647 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u06cc \u062e\u0648\u062f \u06a9\u0647 \u0634\u0645\u0627 \u0631\u0627 \u062f\u0631 \u0628\u0627\u0632\u0627\u0631 \u06a9\u0627\u0631 \u0631\u0642\u0627\u0628\u062a\u06cc \u0627\u0632 \u0633\u0627\u06cc\u0631\u06cc\u0646 \u0645\u062a\u0645\u0627\u06cc\u0632 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0642\u0627\u0628\u0644\u06cc\u062a\u200c\u0647\u0627\u06cc \u0634\u0645\u0627 \u0631\u0627 \u06af\u0633\u062a\u0631\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/li>\n<li><span class=\"highlight\">\u0641\u0631\u0635\u062a\u200c\u0647\u0627\u06cc \u0634\u063a\u0644\u06cc \u0628\u0647\u062a\u0631:<\/span> \u0628\u0627 \u062a\u0648\u062c\u0647 \u0628\u0647 \u0627\u0647\u0645\u06cc\u062a \u0631\u0648\u0632\u0627\u0641\u0632\u0648\u0646 \u0627\u0645\u0646\u06cc\u062a \u062f\u0631 \u062a\u0648\u0633\u0639\u0647 \u0648\u0628\u060c \u062a\u0633\u0644\u0637 \u0628\u0631 \u0627\u06cc\u0646 \u0645\u0641\u0627\u0647\u06cc\u0645 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u062f\u0631 \u06cc\u0627\u0641\u062a\u0646 \u0645\u0648\u0642\u0639\u06cc\u062a\u200c\u0647\u0627\u06cc \u0634\u063a\u0644\u06cc \u0628\u0647\u062a\u0631 \u06cc\u0627 \u0627\u0631\u062a\u0642\u0627\u06cc \u0634\u063a\u0644\u06cc \u062f\u0631 \u0634\u0631\u06a9\u062a\u200c\u0647\u0627\u06cc \u0641\u0646\u0627\u0648\u0631\u06cc \u06a9\u0645\u06a9\u200c\u06a9\u0646\u0646\u062f\u0647 \u0628\u0627\u0634\u062f.<\/li>\n<li><span class=\"highlight\">\u062a\u062c\u0631\u0628\u0647 \u0639\u0645\u0644\u06cc \u0648 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc:<\/span> \u062f\u0648\u0631\u0647 \u0628\u0627 \u0645\u062b\u0627\u0644\u200c\u0647\u0627\u06cc \u0639\u0645\u0644\u06cc \u0648 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u06af\u0627\u0645 \u0628\u0647 \u06af\u0627\u0645 \u0637\u0631\u0627\u062d\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631\u06a9 \u0645\u0641\u0627\u0647\u06cc\u0645 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0631\u0627 \u0622\u0633\u0627\u0646\u200c\u062a\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u062f\u0627\u0646\u0634 \u062a\u0626\u0648\u0631\u06cc \u0631\u0627 \u0628\u0647 \u0645\u0647\u0627\u0631\u062a\u200c\u0647\u0627\u06cc \u0639\u0645\u0644\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc\u200c\u0646\u0645\u0627\u06cc\u062f.<\/li>\n<\/ul>\n<\/div>\n<h2>\u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632\u0647\u0627<\/h2>\n<div class='section-box'>\n<p>\u0628\u0631\u0627\u06cc \u0628\u0647\u0631\u0647\u200c\u0628\u0631\u062f\u0627\u0631\u06cc \u062d\u062f\u0627\u06a9\u062b\u0631\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647 \u0648 \u062f\u0631\u06a9 \u0639\u0645\u06cc\u0642\u200c\u062a\u0631 \u0645\u0641\u0627\u0647\u06cc\u0645\u060c \u062f\u0627\u0634\u062a\u0646 \u062f\u0627\u0646\u0634 \u0642\u0628\u0644\u06cc \u062f\u0631 \u0632\u0645\u06cc\u0646\u0647\u200c\u0647\u0627\u06cc \u0632\u06cc\u0631 \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f:<\/p>\n<ul>\n<li><span class=\"highlight\">\u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 React:<\/span> \u062f\u0631\u06a9 \u0645\u0641\u0627\u0647\u06cc\u0645 \u0627\u0635\u0644\u06cc React \u0645\u0627\u0646\u0646\u062f \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627 (Components)\u060c State\u060c Props\u060c Hooks (\u0628\u062e\u0635\u0648\u0635 <code class=\"highlight\">useState<\/code> \u0648 <code class=\"highlight\">useEffect<\/code>) \u0648 \u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 React Router.<\/li>\n<li><span class=\"highlight\">\u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a (ES6+):<\/span> \u062a\u0633\u0644\u0637 \u0628\u0631 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0645\u062f\u0631\u0646 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0627\u0632 \u062c\u0645\u0644\u0647 \u062a\u0648\u0627\u0628\u0639 Arrow\u060c Async\/Await\u060c Promises \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0627\u0698\u0648\u0644\u200c\u0647\u0627.<\/li>\n<li><span class=\"highlight\">\u0645\u0641\u0627\u0647\u06cc\u0645 \u067e\u0627\u06cc\u0647 \u0648\u0628:<\/span> \u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc HTTP (GET, POST)\u060c RESTful API \u0648 \u06a9\u0627\u0631 \u0628\u0627 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc JSON. \u062f\u0631\u06a9 \u0686\u06af\u0648\u0646\u06af\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f \u0645\u0631\u0648\u0631\u06af\u0631\u0647\u0627 \u0648 \u0645\u0641\u0627\u0647\u06cc\u0645 \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f\/\u0628\u06a9\u200c\u0627\u0646\u062f.<\/li>\n<li><span class=\"highlight\">\u0645\u062f\u06cc\u0631\u06cc\u062a \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627:<\/span> \u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 NPM \u06cc\u0627 Yarn \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0627\u0628\u0633\u062a\u06af\u06cc\u200c\u0647\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 React.<\/li>\n<li><span class=\"highlight\">\u062f\u0627\u0646\u0634 \u0645\u0642\u062f\u0645\u0627\u062a\u06cc \u0628\u06a9\u200c\u0627\u0646\u062f (\u0627\u062e\u062a\u06cc\u0627\u0631\u06cc):<\/span> \u0647\u0631\u0686\u0646\u062f \u062f\u0648\u0631\u0647 \u0628\u0631 \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f \u062a\u0645\u0631\u06a9\u0632 \u062f\u0627\u0631\u062f\u060c \u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 \u0646\u062d\u0648\u0647 \u06a9\u0627\u0631\u06a9\u0631\u062f \u0628\u06a9\u200c\u0627\u0646\u062f\u0647\u0627\u06cc \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a (\u0645\u0627\u0646\u0646\u062f Node.js \u0628\u0627 Express \u06cc\u0627 Python \u0628\u0627 Django REST Framework) \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u062f\u0631 \u062f\u0631\u06a9 \u0628\u0647\u062a\u0631 \u062a\u0639\u0627\u0645\u0644\u0627\u062a \u0633\u0631\u0648\u0631 \u0648 \u06a9\u0644\u0627\u06cc\u0646\u062a \u0645\u0641\u06cc\u062f \u0628\u0627\u0634\u062f.<\/li>\n<\/ul>\n<\/div>\n<h2>\u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u062f\u0648\u0631\u0647<\/h2>\n<div class='section-box'>\n<p>\u0627\u06cc\u0646 \u062f\u0648\u0631\u0647 \u0628\u0647 \u0635\u0648\u0631\u062a \u0633\u0627\u062e\u062a\u0627\u0631\u06cc\u0627\u0641\u062a\u0647 \u0637\u0631\u0627\u062d\u06cc \u0634\u062f\u0647 \u062a\u0627 \u0645\u0641\u0627\u0647\u06cc\u0645 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u0631\u062d\u0644\u0647 \u0628\u0647 \u0645\u0631\u062d\u0644\u0647 \u0648 \u0642\u0627\u0628\u0644 \u062f\u0631\u06a9 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u062f \u0648 \u0634\u0645\u0627 \u0631\u0627 \u0628\u0627 \u0686\u0627\u0644\u0634\u200c\u0647\u0627\u06cc \u0648\u0627\u0642\u0639\u06cc \u062a\u0648\u0633\u0639\u0647 \u0622\u0634\u0646\u0627 \u06a9\u0646\u062f:<\/p>\n<ul>\n<li><span class=\"highlight\">\u0645\u0642\u062f\u0645\u0647\u200c\u0627\u06cc \u0628\u0631 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0648 \u0645\u062c\u0648\u0632\u062f\u0647\u06cc \u062f\u0631 \u0648\u0628:<\/span><br \/>\n            \u0627\u06cc\u0646 \u0628\u062e\u0634 \u0628\u0627 \u062a\u0628\u06cc\u06cc\u0646 \u0645\u0641\u0627\u0647\u06cc\u0645 \u0628\u0646\u06cc\u0627\u062f\u06cc\u0646 Authentication (AuthN) \u0648 Authorization (AuthZ) \u0622\u063a\u0627\u0632 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0641\u0631\u0627\u06af\u06cc\u0631\u0627\u0646 \u062f\u0631\u06a9 \u062e\u0648\u0627\u0647\u0646\u062f \u06a9\u0631\u062f \u06a9\u0647 \u0686\u0631\u0627 \u0627\u06cc\u0646 \u062f\u0648 \u062c\u0646\u0628\u0647 \u062f\u0631 \u062a\u0648\u0633\u0639\u0647 \u0648\u0628 \u0645\u062f\u0631\u0646 \u062d\u06cc\u0627\u062a\u06cc \u0647\u0633\u062a\u0646\u062f \u0648 \u0686\u06af\u0648\u0646\u0647 \u062a\u0641\u0627\u0648\u062a\u200c\u0647\u0627\u06cc \u0638\u0631\u06cc\u0641 \u0628\u06cc\u0646 \u0622\u0646\u200c\u0647\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0631 \u0637\u0631\u0627\u062d\u06cc \u0633\u06cc\u0633\u062a\u0645\u200c\u0647\u0627\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc \u062a\u0623\u062b\u06cc\u0631 \u0628\u06af\u0630\u0627\u0631\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0647 \u0628\u0631\u0631\u0633\u06cc \u0686\u0627\u0644\u0634\u200c\u0647\u0627\u06cc \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0648\u0636\u0639\u06cc\u062a (state) \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u062a\u06a9\u200c\u0635\u0641\u062d\u0647\u200c\u0627\u06cc (SPAs) \u0645\u06cc\u200c\u067e\u0631\u062f\u0627\u0632\u062f \u0648 \u0631\u0627\u0647\u06a9\u0627\u0631\u0647\u0627\u06cc \u06a9\u0644\u06cc \u0631\u0627 \u0645\u0639\u0631\u0641\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644: \u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u06cc\u06a9 \u0633\u0646\u0627\u0631\u06cc\u0648\u06cc \u0648\u0631\u0648\u062f \u06a9\u0627\u0631\u0628\u0631\u060c \u0627\u0632 \u0627\u0631\u0633\u0627\u0644 \u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647 \u062a\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u067e\u0627\u0633\u062e \u0627\u0632 \u0633\u0631\u0648\u0631 \u0648 \u0646\u062d\u0648\u0647 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0645\u0648\u0642\u062a \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u06a9\u0627\u0631\u0628\u0631 \u062f\u0631 \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f \u0628\u062f\u0648\u0646 \u0628\u0647 \u062e\u0637\u0631 \u0627\u0646\u062f\u0627\u062e\u062a\u0646 \u0627\u0645\u0646\u06cc\u062a.<\/p>\n<\/li>\n<li><span class=\"highlight\">\u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 JWT:<\/span><br \/>\n            JSON Web Tokens (JWT) \u06cc\u06a9\u06cc \u0627\u0632 \u0645\u062d\u0628\u0648\u0628\u200c\u062a\u0631\u06cc\u0646 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0628\u06cc\u200c\u062d\u0627\u0644\u062a (stateless) \u062f\u0631 \u0648\u0628 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0628\u062e\u0634 \u0628\u0647 \u062a\u0641\u0635\u06cc\u0644 \u0633\u0627\u062e\u062a\u0627\u0631 JWT (\u0634\u0627\u0645\u0644 Header\u060c Payload \u0648 Signature) \u0631\u0627 \u062a\u0648\u0636\u06cc\u062d \u0645\u06cc\u200c\u062f\u0647\u062f \u0648 \u0646\u062d\u0648\u0647 \u062a\u0648\u0644\u06cc\u062f\u060c \u0627\u0645\u0636\u0627 \u0648 \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u0622\u0646 \u0631\u0627 \u0645\u0648\u0631\u062f \u0628\u0631\u0631\u0633\u06cc \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u062f\u0647\u062f. \u062e\u0648\u0627\u0647\u06cc\u062f \u0622\u0645\u0648\u062e\u062a \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u062a\u0648\u06a9\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0627\u0645\u0646 \u062f\u0631 \u0633\u0645\u062a \u06a9\u0644\u0627\u06cc\u0646\u062a \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f (\u0628\u0627 \u0628\u062d\u062b \u062f\u0631\u0628\u0627\u0631\u0647 \u0645\u0632\u0627\u06cc\u0627 \u0648 \u0645\u0639\u0627\u06cc\u0628 <code class=\"highlight\">localStorage<\/code> \u062f\u0631 \u0645\u0642\u0627\u0628\u0644 <code class=\"highlight\">HTTP-only cookies<\/code>) \u0648 \u0686\u06af\u0648\u0646\u0647 \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc API \u0628\u0647 \u0633\u0631\u0648\u0631 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0635\u0648\u0631\u062a \u06af\u06cc\u0631\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644 \u0639\u0645\u0644\u06cc: \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u06cc\u06a9 \u0641\u0631\u0645 \u0648\u0631\u0648\u062f \u06a9\u0627\u0631\u0628\u0631 \u06a9\u0647 \u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 API \u0628\u06a9\u200c\u0627\u0646\u062f \u0627\u0631\u0633\u0627\u0644 \u06a9\u0631\u062f\u0647 \u0648 \u062a\u0648\u06a9\u0646 JWT \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0633\u067e\u0633 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code class=\"highlight\">Axios Interceptors<\/code>\u060c \u062a\u0648\u06a9\u0646 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u0628\u0647 \u0647\u062f\u0631 <code class=\"highlight\">Authorization<\/code> \u062a\u0645\u0627\u0645 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u062e\u0631\u0648\u062c\u06cc \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<\/li>\n<li><span class=\"highlight\">\u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0628\u0627 OAuth 2.0 \u0648 OpenID Connect:<\/span><br \/>\n            \u062f\u0648\u0631\u0647 \u0628\u0647 \u0628\u0631\u0631\u0633\u06cc \u0686\u06af\u0648\u0646\u06af\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u062e\u0627\u0631\u062c\u06cc \u0645\u0627\u0646\u0646\u062f Google\u060c Facebook \u06cc\u0627 GitHub \u0645\u06cc\u200c\u067e\u0631\u062f\u0627\u0632\u062f \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0622\u0646\u200c\u0647\u0627 \u0648\u0627\u0631\u062f \u0634\u0648\u0646\u062f. \u0634\u0645\u0627 \u0628\u0627 \u067e\u0631\u0648\u062a\u06a9\u0644 OAuth 2.0 \u0648 \u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0627\u06cc\u0645\u0646 \u0628\u0647 \u0645\u0646\u0627\u0628\u0639 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u062f\u0648\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc \u0645\u0633\u062a\u0642\u06cc\u0645 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0622\u0634\u0646\u0627 \u062e\u0648\u0627\u0647\u06cc\u062f \u0634\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646\u060c OpenID Connect \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0644\u0627\u06cc\u0647 \u0647\u0648\u06cc\u062a\u200c\u06af\u0630\u0627\u0631\u06cc \u0628\u0631 \u0631\u0648\u06cc OAuth 2.0 \u0645\u0639\u0631\u0641\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0647\u0648\u06cc\u062a\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644 \u0639\u0645\u0644\u06cc: \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0642\u0627\u0628\u0644\u06cc\u062a &#8220;\u0648\u0631\u0648\u062f \u0628\u0627 \u06af\u0648\u06af\u0644&#8221; \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 React\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u062c\u0631\u06cc\u0627\u0646 <code class=\"highlight\">authorization code flow<\/code> \u0648 \u062f\u0631\u06cc\u0627\u0641\u062a <code class=\"highlight\">ID Token<\/code> \u0648 <code class=\"highlight\">Access Token<\/code> \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0633\u0631\u0648\u0631 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0645\u0631\u0628\u0648\u0637\u0647.<\/p>\n<\/li>\n<li><span class=\"highlight\">\u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0636\u0639\u06cc\u062a \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u062f\u0631 React:<\/span><br \/>\n            \u0627\u06cc\u0646 \u0628\u062e\u0634 \u0628\u0647 \u0627\u0633\u062a\u0631\u0627\u062a\u0698\u06cc\u200c\u0647\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0636\u0639\u06cc\u062a (state management) \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc React \u0628\u0631\u0627\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0645\u06cc\u200c\u067e\u0631\u062f\u0627\u0632\u062f. \u0634\u0645\u0627 \u06cc\u0627\u062f \u062e\u0648\u0627\u0647\u06cc\u062f \u06af\u0631\u0641\u062a \u0686\u06af\u0648\u0646\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code class=\"highlight\">React Context API<\/code> \u06cc\u0627 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f <code class=\"highlight\">Redux (\u0628\u0627 Redux Toolkit)<\/code>\u060c \u0648\u0636\u0639\u06cc\u062a \u0648\u0631\u0648\u062f \u06a9\u0627\u0631\u0628\u0631 (\u0645\u0627\u0646\u0646\u062f <code class=\"highlight\">isAuthenticated<\/code>\u060c <code class=\"highlight\">user roles<\/code> \u0648 <code class=\"highlight\">token<\/code>) \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062a\u0645\u0631\u06a9\u0632 \u0648 \u06a9\u0627\u0631\u0622\u0645\u062f \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f \u062a\u0627 \u062f\u0631 \u0633\u0631\u0627\u0633\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0642\u0627\u0628\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0627\u0634\u062f \u0648 \u0647\u0645\u0627\u0647\u0646\u06af\u06cc \u0644\u0627\u0632\u0645 \u0631\u0627 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644: \u0637\u0631\u0627\u062d\u06cc \u06cc\u06a9 <code class=\"highlight\">AuthContext<\/code> \u0633\u0641\u0627\u0631\u0634\u06cc \u06a9\u0647 \u0634\u0627\u0645\u0644 \u062a\u0648\u0627\u0628\u0639 <code class=\"highlight\">login<\/code>\u060c <code class=\"highlight\">logout<\/code> \u0648 <code class=\"highlight\">register<\/code> \u0628\u0627\u0634\u062f \u0648 \u0648\u0636\u0639\u06cc\u062a \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0631\u0627 \u0628\u0631\u0627\u06cc \u062a\u0645\u0627\u0645 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627\u06cc \u0641\u0631\u0632\u0646\u062f\u06cc \u0641\u0631\u0627\u0647\u0645 \u06a9\u0646\u062f \u062a\u0627 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u0646\u062f.<\/p>\n<\/li>\n<li><span class=\"highlight\">\u0645\u062d\u0627\u0641\u0638\u062a \u0627\u0632 \u0645\u0633\u06cc\u0631\u0647\u0627 \u0648 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627:<\/span><br \/>\n            \u06cc\u06a9\u06cc \u0627\u0632 \u0645\u0647\u0645\u200c\u062a\u0631\u06cc\u0646 \u062c\u0646\u0628\u0647\u200c\u0647\u0627\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc\u060c \u0645\u062d\u062f\u0648\u062f \u06a9\u0631\u062f\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u062e\u0627\u0635\u06cc \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646 \u0628\u062e\u0634\u060c \u06cc\u0627\u062f \u0645\u06cc\u200c\u06af\u06cc\u0631\u06cc\u062f \u0686\u06af\u0648\u0646\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code class=\"highlight\">React Router Dom<\/code>\u060c \u0645\u0633\u06cc\u0631\u0647\u0627 \u0631\u0627 \u0645\u062d\u0627\u0641\u0638\u062a \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0641\u0642\u0637 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0634\u062f\u0647 \u06cc\u0627 \u0628\u0627 \u0646\u0642\u0634\u200c\u0647\u0627\u06cc \u062e\u0627\u0635 \u0628\u0647 \u0622\u0646\u200c\u0647\u0627 \u062f\u0633\u062a\u0631\u0633\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0646\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0646\u062d\u0648\u0647 \u0634\u0631\u0637\u06cc\u200c\u0633\u0627\u0632\u06cc \u0646\u0645\u0627\u06cc\u0634 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627 \u06cc\u0627 \u0642\u0633\u0645\u062a\u200c\u0647\u0627\u06cc\u06cc \u0627\u0632 UI \u0628\u0631 \u0627\u0633\u0627\u0633 \u0648\u0636\u0639\u06cc\u062a \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u06cc\u0627 \u0646\u0642\u0634 \u06a9\u0627\u0631\u0628\u0631 \u0622\u0645\u0648\u0632\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code class=\"highlight\">Higher-Order Components (HOCs)<\/code> \u06cc\u0627 <code class=\"highlight\">Custom Hooks<\/code> \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u0646\u0637\u0642 \u062d\u0641\u0627\u0638\u062a \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0645\u0648\u0631\u062f \u0628\u062d\u062b \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644 \u0639\u0645\u0644\u06cc: \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a <code class=\"highlight\">PrivateRoute<\/code> \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0646\u0634\u062f\u0647 \u0631\u0627 \u0628\u0647 \u0635\u0641\u062d\u0647 \u0648\u0631\u0648\u062f \u0647\u062f\u0627\u06cc\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u06cc\u06a9 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a <code class=\"highlight\">RoleBasedComponent<\/code> \u06a9\u0647 \u0641\u0642\u0637 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0628\u0627 \u0646\u0642\u0634\u200c\u0647\u0627\u06cc \u062e\u0627\u0635 (\u0645\u062b\u0644\u0627\u064b \u0645\u062f\u06cc\u0631\u0627\u0646) \u0642\u0627\u0628\u0644 \u0645\u0634\u0627\u0647\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<\/li>\n<li><span class=\"highlight\">\u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u062c\u0648\u0632\u062f\u0647\u06cc (Authorization) \u067e\u06cc\u0634\u0631\u0641\u062a\u0647:<\/span><br \/>\n            \u0627\u06cc\u0646 \u0628\u062e\u0634 \u0639\u0645\u06cc\u0642\u200c\u062a\u0631 \u0628\u0647 \u0645\u0641\u0647\u0648\u0645 \u0645\u062c\u0648\u0632\u062f\u0647\u06cc \u0645\u06cc\u200c\u067e\u0631\u062f\u0627\u0632\u062f \u0648 \u0634\u0645\u0627 \u0631\u0627 \u0628\u0627 \u0686\u06af\u0648\u0646\u06af\u06cc \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646\u062a\u0631\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u062f\u0642\u06cc\u0642\u200c\u062a\u0631 \u0622\u0634\u0646\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0641\u0631\u0627\u06af\u06cc\u0631\u0627\u0646 \u0628\u0627 \u0645\u0641\u0627\u0647\u06cc\u0645 \u06a9\u0646\u062a\u0631\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0646\u0642\u0634 (Role-Based Access Control &#8211; RBAC) \u0622\u0634\u0646\u0627 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u0648 \u06cc\u0627\u062f \u0645\u06cc\u200c\u06af\u06cc\u0631\u0646\u062f \u0686\u06af\u0648\u0646\u0647 \u0646\u0642\u0634\u200c\u0647\u0627 \u0648 \u0645\u062c\u0648\u0632\u0647\u0627 \u0631\u0627 \u0627\u0632 \u0628\u06a9\u200c\u0627\u0646\u062f \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u062f\u0647 \u0648 \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u062f\u0631 \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f React \u0628\u0647 \u06a9\u0627\u0631 \u0628\u0628\u0631\u0646\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0647 \u0686\u06af\u0648\u0646\u06af\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u062c\u0648\u0632\u0647\u0627\u06cc \u062f\u0627\u0646\u0647 \u0631\u06cc\u0632 (fine-grained permissions) \u0628\u0631 \u0627\u0633\u0627\u0633 \u0645\u0646\u0627\u0628\u0639 (resources) \u0645\u062e\u062a\u0644\u0641 \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627\u06cc \u062e\u0627\u0635 \u067e\u0631\u062f\u0627\u062e\u062a\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644: \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u0646\u0637\u0642\u06cc \u06a9\u0647 \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0646\u0647\u0627 \u067e\u0633\u062a\u200c\u0647\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u062e\u0648\u062f \u0631\u0627 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u06cc\u0627 \u062d\u0630\u0641 \u06a9\u0646\u062f\u060c \u062d\u062a\u06cc \u0627\u06af\u0631 \u0646\u0642\u0634 &#8220;\u0646\u0648\u06cc\u0633\u0646\u062f\u0647&#8221; \u0631\u0627 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f\u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0645\u062f\u06cc\u0631\u0627\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u062a\u0645\u0627\u0645\u06cc \u067e\u0633\u062a\u200c\u0647\u0627 \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u0646\u062f.<\/p>\n<\/li>\n<li><span class=\"highlight\">\u0628\u0647\u062a\u0631\u06cc\u0646 \u0634\u06cc\u0648\u0647\u200c\u0647\u0627 \u0648 \u0627\u0645\u0646\u06cc\u062a \u062f\u0631 \u0639\u0645\u0644:<\/span><br \/>\n            \u0627\u06cc\u0646 \u0628\u062e\u0634 \u0628\u0647 \u062c\u0646\u0628\u0647\u200c\u0647\u0627\u06cc \u062d\u06cc\u0627\u062a\u06cc \u0627\u0645\u0646\u06cc\u062a \u0633\u0627\u06cc\u0628\u0631\u06cc \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc React \u0645\u06cc\u200c\u067e\u0631\u062f\u0627\u0632\u062f. \u0634\u0627\u0645\u0644 \u0628\u062d\u062b \u062f\u0631 \u0645\u0648\u0631\u062f \u0622\u0633\u06cc\u0628\u200c\u067e\u0630\u06cc\u0631\u06cc\u200c\u0647\u0627\u06cc \u0631\u0627\u06cc\u062c \u0645\u0627\u0646\u0646\u062f XSS (Cross-Site Scripting)\u060c CSRF (Cross-Site Request Forgery) \u0648 \u0646\u062d\u0648\u0647 \u0645\u062d\u0627\u0641\u0638\u062a \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 React \u062f\u0631 \u0628\u0631\u0627\u0628\u0631 \u0622\u0646\u200c\u0647\u0627 \u0628\u0627 \u0627\u0639\u0645\u0627\u0644 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0634\u06cc\u0648\u0647\u200c\u0647\u0627\u06cc \u06a9\u062f\u0646\u0648\u06cc\u0633\u06cc \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0647 \u0645\u0648\u0636\u0648\u0639\u0627\u062a\u06cc \u0645\u0627\u0646\u0646\u062f <code class=\"highlight\">token refresh<\/code>\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u0639\u062a\u0628\u0627\u0631 \u062a\u0648\u06a9\u0646\u060c \u0648 \u0631\u0648\u06cc\u06a9\u0631\u062f\u0647\u0627\u06cc \u0627\u0645\u0646 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 \u0648 \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc\u200c\u067e\u0631\u062f\u0627\u0632\u062f \u062a\u0627 \u0627\u0632 \u062d\u0645\u0644\u0627\u062a \u0627\u062d\u062a\u0645\u0627\u0644\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644: \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 <code class=\"highlight\">silent token refresh<\/code> \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code class=\"highlight\">refresh tokens<\/code> \u0648 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0648\u0631\u0648\u062f \u0645\u062c\u062f\u062f \u06a9\u0627\u0631\u0628\u0631 \u067e\u0633 \u0627\u0632 \u0627\u0646\u0642\u0636\u0627\u06cc <code class=\"highlight\">access token<\/code>\u060c \u06a9\u0647 \u062a\u062c\u0631\u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0645\u06cc\u200c\u0628\u062e\u0634\u062f \u0648 \u0627\u0645\u0646\u06cc\u062a \u0631\u0627 \u062d\u0641\u0638 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<p>\n\u062f\u0631 \u0645\u062c\u0645\u0648\u0639\u060c \u062f\u0648\u0631\u0647 &#8220;\u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0648 \u0645\u062c\u0648\u0632\u062f\u0647\u06cc \u062f\u0631 React&#8221; \u0627\u0632 Pluralsight \u06cc\u06a9 \u0645\u0646\u0628\u0639 \u0627\u0631\u0632\u0634\u0645\u0646\u062f \u0648 \u062c\u0627\u0645\u0639 \u0628\u0631\u0627\u06cc \u0647\u0631 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647 React \u0627\u0633\u062a \u06a9\u0647 \u0642\u0635\u062f \u062f\u0627\u0631\u062f \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0648\u0628 \u0627\u0645\u0646\u200c\u062a\u0631\u060c \u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f\u062a\u0631 \u0648 \u0642\u0648\u06cc\u200c\u062a\u0631\u06cc \u0628\u0633\u0627\u0632\u062f. \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647 \u0628\u0627 \u067e\u0648\u0634\u0634 \u062c\u0627\u0645\u0639 \u0645\u0641\u0627\u0647\u06cc\u0645\u060c \u0627\u0631\u0627\u0626\u0647 \u0645\u062b\u0627\u0644\u200c\u0647\u0627\u06cc \u0639\u0645\u0644\u06cc \u0641\u0631\u0627\u0648\u0627\u0646 \u0648 \u062a\u0645\u0631\u06a9\u0632 \u0628\u0631 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0634\u06cc\u0648\u0647\u200c\u0647\u0627\u060c \u0634\u0645\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0645\u0642\u0627\u0628\u0644\u0647 \u0628\u0627 \u0686\u0627\u0644\u0634\u200c\u0647\u0627\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc \u062f\u0631 \u062a\u0648\u0633\u0639\u0647 \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f \u0622\u0645\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0645\u0647\u0627\u0631\u062a\u200c\u0647\u0627\u06cc \u0634\u0645\u0627 \u0631\u0627 \u062f\u0631 \u0628\u0627\u0632\u0627\u0631 \u06a9\u0627\u0631 \u0631\u0642\u0627\u0628\u062a\u06cc \u0627\u0645\u0631\u0648\u0632 \u0627\u0631\u062a\u0642\u0627 \u0645\u06cc\u200c\u0628\u062e\u0634\u062f. \u0628\u0627 \u0633\u0631\u0645\u0627\u06cc\u0647\u200c\u06af\u0630\u0627\u0631\u06cc \u0628\u0631 \u0631\u0648\u06cc \u0627\u06cc\u0646 \u062f\u0627\u0646\u0634\u060c \u0646\u0647 \u062a\u0646\u0647\u0627 \u06a9\u062f\u0647\u0627\u06cc \u0628\u0647\u062a\u0631 \u0648 \u0627\u0645\u0646\u200c\u062a\u0631\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0646\u0648\u0634\u062a\u060c \u0628\u0644\u06a9\u0647 \u0627\u0639\u062a\u0645\u0627\u062f \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u062e\u0648\u062f \u0631\u0627 \u0646\u06cc\u0632 \u062c\u0644\u0628 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f \u0648 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647 \u0645\u062a\u062e\u0635\u0635 \u062f\u0631 \u0632\u0645\u06cc\u0646\u0647 \u0627\u0645\u0646\u06cc\u062a \u0648\u0628\u060c \u0627\u0631\u0632\u0634 \u0628\u06cc\u0634\u062a\u0631\u06cc \u067e\u06cc\u062f\u0627 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f.\n<\/p>\n<\/article>\n","protected":false},"excerpt":{"rendered":"<p>\u0646\u0627\u0645 \u0645\u062d\u0635\u0648\u0644 \u0628\u0647 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u062f\u0627\u0646\u0644\u0648\u062f Pluralsight &#8211; Authentication and Authorization in React \u0646\u0627\u0645 \u0645\u062d\u0635\u0648\u0644 \u0628\u0647 \u0641\u0627\u0631\u0633\u06cc \u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a [&hellip;]<\/p>\n","protected":false},"featured_media":67493,"comment_status":"open","ping_status":"closed","template":"","meta":{"pmpro_default_level":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}}},"product_cat":[1225],"product_tag":[21727,6474,10727,10728,23750,40828,1650,1240,49557,49558,1250,4978,7231,49555,6470,4970,1237,42420,21717,40827,49556],"class_list":{"0":"post-107363","1":"product","2":"type-product","3":"status-publish","4":"has-post-thumbnail","6":"product_cat-1225","7":"product_tag-access-control","8":"product_tag-application-security","9":"product_tag-authentication","10":"product_tag-authorization","11":"product_tag-jwt","12":"product_tag-oauth","13":"product_tag-pluralsight","14":"product_tag-react","15":"product_tag-react-authentication","16":"product_tag-react-authorization","17":"product_tag-web-development","18":"product_tag-web-security","19":"product_tag-7231","20":"product_tag-49555","21":"product_tag-6470","22":"product_tag-4970","23":"product_tag-1237","24":"product_tag-42420","25":"product_tag-21717","26":"product_tag-40827","27":"product_tag-49556","28":"pmpro-has-access","29":"desktop-align-left","30":"tablet-align-left","31":"mobile-align-left","33":"first","34":"instock","35":"shipping-taxable","36":"purchasable","37":"product-type-variable"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0648 \u0645\u062c\u0648\u0632\u062f\u0647\u06cc \u062f\u0631 React - \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/express24.ir\/d\/product\/\u062f\u0627\u0646\u0644\u0648\u062f-\u062f\u0648\u0631\u0647-\u0627\u062d\u0631\u0627\u0632-\u0647\u0648\u06cc\u062a-\u0648-\u0645\u062c\u0648\u0632\u062f\u0647\u06cc-\u062f\u0631-react\/\" \/>\n<meta property=\"og:locale\" content=\"fa_IR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0648 \u0645\u062c\u0648\u0632\u062f\u0647\u06cc \u062f\u0631 React - \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633\" \/>\n<meta property=\"og:description\" content=\"\u0646\u0627\u0645 \u0645\u062d\u0635\u0648\u0644 \u0628\u0647 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u062f\u0627\u0646\u0644\u0648\u062f Pluralsight &#8211; Authentication and Authorization in React \u0646\u0627\u0645 \u0645\u062d\u0635\u0648\u0644 \u0628\u0647 \u0641\u0627\u0631\u0633\u06cc \u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/express24.ir\/d\/product\/\u062f\u0627\u0646\u0644\u0648\u062f-\u062f\u0648\u0631\u0647-\u0627\u062d\u0631\u0627\u0632-\u0647\u0648\u06cc\u062a-\u0648-\u0645\u062c\u0648\u0632\u062f\u0647\u06cc-\u062f\u0631-react\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-05T08:42:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/express24.ir\/d\/wp-content\/uploads\/2025\/05\/Express24_ir.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u0632\u0645\u0627\u0646 \u062a\u0642\u0631\u06cc\u0628\u06cc \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 \u062f\u0642\u06cc\u0642\u0647\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d8%ad%d8%b1%d8%a7%d8%b2-%d9%87%d9%88%db%8c%d8%aa-%d9%88-%d9%85%d8%ac%d9%88%d8%b2%d8%af%d9%87%db%8c-%d8%af%d8%b1-react\/\",\"url\":\"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d8%ad%d8%b1%d8%a7%d8%b2-%d9%87%d9%88%db%8c%d8%aa-%d9%88-%d9%85%d8%ac%d9%88%d8%b2%d8%af%d9%87%db%8c-%d8%af%d8%b1-react\/\",\"name\":\"\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0648 \u0645\u062c\u0648\u0632\u062f\u0647\u06cc \u062f\u0631 React - \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633\",\"isPartOf\":{\"@id\":\"https:\/\/express24.ir\/d\/#website\"},\"datePublished\":\"2025-06-05T08:41:59+00:00\",\"dateModified\":\"2025-06-05T08:42:02+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d8%ad%d8%b1%d8%a7%d8%b2-%d9%87%d9%88%db%8c%d8%aa-%d9%88-%d9%85%d8%ac%d9%88%d8%b2%d8%af%d9%87%db%8c-%d8%af%d8%b1-react\/#breadcrumb\"},\"inLanguage\":\"fa-IR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d8%ad%d8%b1%d8%a7%d8%b2-%d9%87%d9%88%db%8c%d8%aa-%d9%88-%d9%85%d8%ac%d9%88%d8%b2%d8%af%d9%87%db%8c-%d8%af%d8%b1-react\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d8%ad%d8%b1%d8%a7%d8%b2-%d9%87%d9%88%db%8c%d8%aa-%d9%88-%d9%85%d8%ac%d9%88%d8%b2%d8%af%d9%87%db%8c-%d8%af%d8%b1-react\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u062e\u0627\u0646\u0647\",\"item\":\"https:\/\/express24.ir\/d\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0641\u0631\u0648\u0634\u06af\u0627\u0647\",\"item\":\"https:\/\/express24.ir\/d\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0648 \u0645\u062c\u0648\u0632\u062f\u0647\u06cc \u062f\u0631 React\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/express24.ir\/d\/#website\",\"url\":\"https:\/\/express24.ir\/d\/\",\"name\":\"\u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/express24.ir\/d\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fa-IR\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0648 \u0645\u062c\u0648\u0632\u062f\u0647\u06cc \u062f\u0631 React - \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/express24.ir\/d\/product\/\u062f\u0627\u0646\u0644\u0648\u062f-\u062f\u0648\u0631\u0647-\u0627\u062d\u0631\u0627\u0632-\u0647\u0648\u06cc\u062a-\u0648-\u0645\u062c\u0648\u0632\u062f\u0647\u06cc-\u062f\u0631-react\/","og_locale":"fa_IR","og_type":"article","og_title":"\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0648 \u0645\u062c\u0648\u0632\u062f\u0647\u06cc \u062f\u0631 React - \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633","og_description":"\u0646\u0627\u0645 \u0645\u062d\u0635\u0648\u0644 \u0628\u0647 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u062f\u0627\u0646\u0644\u0648\u062f Pluralsight &#8211; Authentication and Authorization in React \u0646\u0627\u0645 \u0645\u062d\u0635\u0648\u0644 \u0628\u0647 \u0641\u0627\u0631\u0633\u06cc \u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a [&hellip;]","og_url":"https:\/\/express24.ir\/d\/product\/\u062f\u0627\u0646\u0644\u0648\u062f-\u062f\u0648\u0631\u0647-\u0627\u062d\u0631\u0627\u0632-\u0647\u0648\u06cc\u062a-\u0648-\u0645\u062c\u0648\u0632\u062f\u0647\u06cc-\u062f\u0631-react\/","og_site_name":"\u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633","article_modified_time":"2025-06-05T08:42:02+00:00","og_image":[{"width":1024,"height":1024,"url":"https:\/\/express24.ir\/d\/wp-content\/uploads\/2025\/05\/Express24_ir.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"\u0632\u0645\u0627\u0646 \u062a\u0642\u0631\u06cc\u0628\u06cc \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646":"1 \u062f\u0642\u06cc\u0642\u0647"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d8%ad%d8%b1%d8%a7%d8%b2-%d9%87%d9%88%db%8c%d8%aa-%d9%88-%d9%85%d8%ac%d9%88%d8%b2%d8%af%d9%87%db%8c-%d8%af%d8%b1-react\/","url":"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d8%ad%d8%b1%d8%a7%d8%b2-%d9%87%d9%88%db%8c%d8%aa-%d9%88-%d9%85%d8%ac%d9%88%d8%b2%d8%af%d9%87%db%8c-%d8%af%d8%b1-react\/","name":"\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0648 \u0645\u062c\u0648\u0632\u062f\u0647\u06cc \u062f\u0631 React - \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633","isPartOf":{"@id":"https:\/\/express24.ir\/d\/#website"},"datePublished":"2025-06-05T08:41:59+00:00","dateModified":"2025-06-05T08:42:02+00:00","breadcrumb":{"@id":"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d8%ad%d8%b1%d8%a7%d8%b2-%d9%87%d9%88%db%8c%d8%aa-%d9%88-%d9%85%d8%ac%d9%88%d8%b2%d8%af%d9%87%db%8c-%d8%af%d8%b1-react\/#breadcrumb"},"inLanguage":"fa-IR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d8%ad%d8%b1%d8%a7%d8%b2-%d9%87%d9%88%db%8c%d8%aa-%d9%88-%d9%85%d8%ac%d9%88%d8%b2%d8%af%d9%87%db%8c-%d8%af%d8%b1-react\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d8%ad%d8%b1%d8%a7%d8%b2-%d9%87%d9%88%db%8c%d8%aa-%d9%88-%d9%85%d8%ac%d9%88%d8%b2%d8%af%d9%87%db%8c-%d8%af%d8%b1-react\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u062e\u0627\u0646\u0647","item":"https:\/\/express24.ir\/d\/"},{"@type":"ListItem","position":2,"name":"\u0641\u0631\u0648\u0634\u06af\u0627\u0647","item":"https:\/\/express24.ir\/d\/"},{"@type":"ListItem","position":3,"name":"\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0648 \u0645\u062c\u0648\u0632\u062f\u0647\u06cc \u062f\u0631 React"}]},{"@type":"WebSite","@id":"https:\/\/express24.ir\/d\/#website","url":"https:\/\/express24.ir\/d\/","name":"\u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/express24.ir\/d\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fa-IR"}]}},"_links":{"self":[{"href":"https:\/\/express24.ir\/d\/wp-json\/wp\/v2\/product\/107363","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/express24.ir\/d\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/express24.ir\/d\/wp-json\/wp\/v2\/types\/product"}],"replies":[{"embeddable":true,"href":"https:\/\/express24.ir\/d\/wp-json\/wp\/v2\/comments?post=107363"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/express24.ir\/d\/wp-json\/wp\/v2\/media\/67493"}],"wp:attachment":[{"href":"https:\/\/express24.ir\/d\/wp-json\/wp\/v2\/media?parent=107363"}],"wp:term":[{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/express24.ir\/d\/wp-json\/wp\/v2\/product_cat?post=107363"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/express24.ir\/d\/wp-json\/wp\/v2\/product_tag?post=107363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}