{"id":33029,"date":"2024-11-01T09:13:14","date_gmt":"2024-11-01T09:13:14","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=33029"},"modified":"2024-11-01T11:29:16","modified_gmt":"2024-11-01T11:29:16","slug":"spring-boot-backend-development-course-implementing-login-and-logout-with-oauth2-what-are-cookies","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/33029\/","title":{"rendered":"Spring Boot Backend Development Course, Implementing Login and Logout with OAuth2, What are Cookies"},"content":{"rendered":"<p><body><\/p>\n<article>\n<section>\n<h2>1. Introduction<\/h2>\n<p>The importance of user authentication and authorization management in modern web application development is increasing day by day. For this reason, the OAuth2 protocol is widely used, providing a way to handle user authentication more flexibly across various systems and platforms. In this course, we will explore how to implement login and logout functionalities based on OAuth2 using Spring Boot and the concept of cookies in detail.<\/p>\n<\/section>\n<section>\n<h2>2. What is Spring Boot?<\/h2>\n<p>Spring Boot is a development framework based on the Spring framework, designed to support rapid development and simplify complex configurations. This allows developers to focus on the business logic of the application, reducing the time spent on configuration. Spring Boot provides its own embedded server (e.g., Tomcat, Jetty, etc.), enabling the application to run without the need for a separate web server installation.<\/p>\n<\/section>\n<section>\n<h2>3. What is OAuth2?<\/h2>\n<p>OAuth2 is an authentication framework that allows client applications to access user data securely. In other words, it provides a way for users to grant access to applications without exposing sensitive information like passwords. The basic flow of OAuth2 is as follows:<\/p>\n<ol>\n<li><strong>User Authentication:<\/strong> When a user logs into the application, the application requests the user&#8217;s authorization from the OAuth service provider.<\/li>\n<li><strong>Authorization Code Issuance:<\/strong> Once user authentication is complete, the OAuth service provider sends the Auth Code to the client application.<\/li>\n<li><strong>Access Token Issuance:<\/strong> The client application requests an Access Token through the Authorization Code, which allows access to user data.<\/li>\n<\/ol>\n<p>Through these steps, OAuth2 simplifies and secures the various user authentication processes.<\/p>\n<\/section>\n<section>\n<h2>4. Implementing OAuth2 in Spring Boot<\/h2>\n<p>In Spring Boot, OAuth2 can be easily implemented using <code>spring-boot-starter-oauth2-client<\/code>. Below is the OAuth2 setup process.<\/p>\n<h3>4.1. Adding Dependencies<\/h3>\n<p>First, you need to add the following dependency in the <code>pom.xml<\/code> file of your Maven project:<\/p>\n<pre><code>&lt;dependency&gt;\n    &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\n    &lt;artifactId&gt;spring-boot-starter-oauth2-client&lt;\/artifactId&gt;\n&lt;\/dependency&gt;<\/code><\/pre>\n<h3>4.2. Configuring application.yml<\/h3>\n<p>Next, add the settings for the OAuth2 provider in the <code>src\/main\/resources\/application.yml<\/code> file. For example, if you want to use Google OAuth2, you can set it up as follows:<\/p>\n<pre><code>spring:\n  security:\n    oauth2:\n      client:\n        registration:\n          google:\n            client-id: YOUR_CLIENT_ID\n            client-secret: YOUR_CLIENT_SECRET\n            scope: profile, email\n        provider:\n          google:\n            authorization-uri: https:\/\/accounts.google.com\/o\/oauth2\/auth\n            token-uri: https:\/\/oauth2.googleapis.com\/token\n            user-info-uri: https:\/\/www.googleapis.com\/oauth2\/v3\/userinfo\n            user-name-attribute: sub<\/code><\/pre>\n<h3>4.3. Security Configuration<\/h3>\n<p>Next, configure security using Spring Security. Extend <code>WebSecurityConfigurerAdapter<\/code> and set it up as follows:<\/p>\n<pre><code>import org.springframework.context.annotation.Configuration;\nimport org.springframework.security.config.annotation.web.builders.HttpSecurity;\nimport org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;\nimport org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;\n\n@Configuration\n@EnableWebSecurity\npublic class SecurityConfig extends WebSecurityConfigurerAdapter {\n    @Override\n    protected void configure(HttpSecurity http) throws Exception {\n        http\n            .authorizeRequests()\n                .antMatchers(\"\/\", \"\/login\").permitAll()\n                .anyRequest().authenticated()\n                .and()\n            .oauth2Login();\n    }\n}<\/code><\/pre>\n<h3>4.4. Login and Logout<\/h3>\n<p>To implement OAuth2 login, you can either use the default login screen provided or customize it. The logout feature is configured as follows:<\/p>\n<pre><code>http\n    .logout()\n        .logoutSuccessUrl(\"\/\")\n        .permitAll();<\/code><\/pre>\n<p>Now, when you run the application, users can log in using OAuth2. Upon successful login, you will be able to view the user\u2019s information.<\/p>\n<\/section>\n<section>\n<h2>5. What are Cookies?<\/h2>\n<p>Cookies are small pieces of data stored by web browsers, mainly used to store user session information. By using cookies, the server can maintain the client&#8217;s state, allowing the user to remain logged in even when refreshing the page or navigating to another page.<\/p>\n<h3>5.1. Characteristics of Cookies<\/h3>\n<ul>\n<li><strong>Small Data Size:<\/strong> Cookies are typically limited to less than 4KB, and there is also a limit on the number of cookies a user can store in the browser.<\/li>\n<li><strong>Automatic Transmission:<\/strong> Cookies are automatically sent to the server when a request is made to that domain.<\/li>\n<li><strong>Expiration Settings:<\/strong> Cookies can have relative or absolute expiration times set.<\/li>\n<\/ul>\n<h3>5.2. Using Cookies in Spring<\/h3>\n<p>Using cookies in a Spring application is relatively straightforward. To add cookies to an HTTP response, you can handle it as follows:<\/p>\n<pre><code>import javax.servlet.http.Cookie;\nimport javax.servlet.http.HttpServletResponse;\n\n\/\/ Creating and adding a cookie\npublic void addCookie(HttpServletResponse response) {\n    Cookie cookie = new Cookie(\"name\", \"value\");\n    cookie.setMaxAge(60 * 60); \/\/ 1 hour\n    cookie.setPath(\"\/\");\n    response.addCookie(cookie);\n}<\/code><\/pre>\n<h3>5.3. Reading Cookies<\/h3>\n<p>To read cookies sent by the server, you can use <code>HttpServletRequest<\/code>:<\/p>\n<pre><code>import javax.servlet.http.Cookie;\nimport javax.servlet.http.HttpServletRequest;\n\n\/\/ Reading a cookie\npublic void readCookie(HttpServletRequest request) {\n    Cookie[] cookies = request.getCookies();\n    if (cookies != null) {\n        for (Cookie cookie : cookies) {\n            if (cookie.getName().equals(\"name\")) {\n                String value = cookie.getValue();\n                \/\/ Using the cookie\n            }\n        }\n    }\n}<\/code><\/pre>\n<\/section>\n<section>\n<h2>6. Conclusion<\/h2>\n<p>In this course, we explored the process of implementing OAuth2 login and logout functionalities through Spring Boot, as well as the concept of cookies. OAuth2 is a powerful tool for flexibly handling user authentication across various platforms, while cookies help facilitate user session management. By properly utilizing these technologies in actual projects, strive to develop safer and more convenient web applications.<\/p>\n<\/section>\n<section>\n<h2>7. References<\/h2>\n<ul>\n<li><a href=\"https:\/\/spring.io\/projects\/spring-boot\">Spring Boot Documentation<\/a><\/li>\n<li><a href=\"https:\/\/oauth.net\/2\/\">OAuth 2.0 Specification<\/a><\/li>\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Cookies\">MDN Web Docs &#8211; HTTP Cookies<\/a><\/li>\n<\/ul>\n<\/section>\n<\/article>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Introduction The importance of user authentication and authorization management in modern web application development is increasing day by day. For this reason, the OAuth2 protocol is widely used, providing a way to handle user authentication more flexibly across various systems and platforms. In this course, we will explore how to implement login and logout &hellip; <a href=\"https:\/\/atmokpo.com\/w\/33029\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Spring Boot Backend Development Course, Implementing Login and Logout with OAuth2, What are Cookies&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[131],"tags":[],"class_list":["post-33029","post","type-post","status-publish","format-standard","hentry","category-spring-boot-backend-development"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Spring Boot Backend Development Course, Implementing Login and Logout with OAuth2, What are Cookies - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8<\/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:\/\/atmokpo.com\/w\/33029\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Spring Boot Backend Development Course, Implementing Login and Logout with OAuth2, What are Cookies - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"1. Introduction The importance of user authentication and authorization management in modern web application development is increasing day by day. For this reason, the OAuth2 protocol is widely used, providing a way to handle user authentication more flexibly across various systems and platforms. In this course, we will explore how to implement login and logout &hellip; \ub354 \ubcf4\uae30 &quot;Spring Boot Backend Development Course, Implementing Login and Logout with OAuth2, What are Cookies&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/33029\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:13:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:29:16+00:00\" \/>\n<meta name=\"author\" content=\"root\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:site\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"root\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"4\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/33029\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33029\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Spring Boot Backend Development Course, Implementing Login and Logout with OAuth2, What are Cookies\",\"datePublished\":\"2024-11-01T09:13:14+00:00\",\"dateModified\":\"2024-11-01T11:29:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33029\/\"},\"wordCount\":621,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Spring Boot backend development\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/33029\/\",\"url\":\"https:\/\/atmokpo.com\/w\/33029\/\",\"name\":\"Spring Boot Backend Development Course, Implementing Login and Logout with OAuth2, What are Cookies - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:13:14+00:00\",\"dateModified\":\"2024-11-01T11:29:16+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33029\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/33029\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/33029\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Spring Boot Backend Development Course, Implementing Login and Logout with OAuth2, What are Cookies\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/atmokpo.com\/w\/#website\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/atmokpo.com\/w\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"contentUrl\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"width\":400,\"height\":400,\"caption\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\"},\"image\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/bebubo4\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\",\"name\":\"root\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"caption\":\"root\"},\"sameAs\":[\"http:\/\/atmokpo.com\/w\"],\"url\":\"https:\/\/atmokpo.com\/w\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Spring Boot Backend Development Course, Implementing Login and Logout with OAuth2, What are Cookies - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","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:\/\/atmokpo.com\/w\/33029\/","og_locale":"ko_KR","og_type":"article","og_title":"Spring Boot Backend Development Course, Implementing Login and Logout with OAuth2, What are Cookies - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"1. Introduction The importance of user authentication and authorization management in modern web application development is increasing day by day. For this reason, the OAuth2 protocol is widely used, providing a way to handle user authentication more flexibly across various systems and platforms. In this course, we will explore how to implement login and logout &hellip; \ub354 \ubcf4\uae30 \"Spring Boot Backend Development Course, Implementing Login and Logout with OAuth2, What are Cookies\"","og_url":"https:\/\/atmokpo.com\/w\/33029\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:13:14+00:00","article_modified_time":"2024-11-01T11:29:16+00:00","author":"root","twitter_card":"summary_large_image","twitter_creator":"@bebubo4","twitter_site":"@bebubo4","twitter_misc":{"\uae00\uc4f4\uc774":"root","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"4\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/33029\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/33029\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Spring Boot Backend Development Course, Implementing Login and Logout with OAuth2, What are Cookies","datePublished":"2024-11-01T09:13:14+00:00","dateModified":"2024-11-01T11:29:16+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/33029\/"},"wordCount":621,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Spring Boot backend development"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/33029\/","url":"https:\/\/atmokpo.com\/w\/33029\/","name":"Spring Boot Backend Development Course, Implementing Login and Logout with OAuth2, What are Cookies - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:13:14+00:00","dateModified":"2024-11-01T11:29:16+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/33029\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/33029\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/33029\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Spring Boot Backend Development Course, Implementing Login and Logout with OAuth2, What are Cookies"}]},{"@type":"WebSite","@id":"https:\/\/atmokpo.com\/w\/#website","url":"https:\/\/atmokpo.com\/w\/","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","description":"","publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atmokpo.com\/w\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/atmokpo.com\/w\/#organization","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","url":"https:\/\/atmokpo.com\/w\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/","url":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","contentUrl":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","width":400,"height":400,"caption":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8"},"image":{"@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/bebubo4"]},{"@type":"Person","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7","name":"root","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","caption":"root"},"sameAs":["http:\/\/atmokpo.com\/w"],"url":"https:\/\/atmokpo.com\/w\/author\/root\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33029","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/comments?post=33029"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33029\/revisions"}],"predecessor-version":[{"id":33030,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33029\/revisions\/33030"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=33029"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=33029"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=33029"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}