{"id":1544,"date":"2026-02-04T08:04:26","date_gmt":"2026-02-04T08:04:26","guid":{"rendered":"https:\/\/gurututorku.com\/blog\/?p=1544"},"modified":"2026-02-05T04:14:54","modified_gmt":"2026-02-05T04:14:54","slug":"tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout","status":"publish","type":"post","link":"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/","title":{"rendered":"Tutorial Laravel 12 &#8211; Membuat Web Berita berbasis API &#8211; Bagian #5 (Setting Auth Vue Login dan Logout)"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">AUTH VUE \u2013 BAGIAN 1<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Login Page + Axios + Token Storage<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">STRUKTUR FILE (VUE)<\/h2>\n\n\n\n<p>Di folder <strong>vue-berita<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>src\/\n \u251c\u2500 views\/\n \u2502   \u2514\u2500 Login.vue\n \u251c\u2500 router\/\n \u2502   \u2514\u2500 index.js\n \u251c\u2500 services\/\n \u2502   \u2514\u2500 api.js\n \u2514\u2500 main.js\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">1&#xfe0f;&#x20e3; INSTALL AXIOS (PASTIKAN DI FOLDER vue-berita)<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>npm install axios\n<\/code><\/pre>\n\n\n\n<p>&#x1f4cc; <strong>Jalankan di folder <code>vue-berita<\/code><\/strong>, bukan root Laravel.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2&#xfe0f;&#x20e3; Axios Instance (services\/api.js)<\/h2>\n\n\n\n<p>&#x1f4c2; <code>src\/services\/api.js<\/code><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import axios from 'axios'\n\nconst api = axios.create({\n  baseURL: 'http:\/\/127.0.0.1:8000\/api',\n})\n\n\/\/ otomatis kirim token\napi.interceptors.request.use(config =&gt; {\n  const token = localStorage.getItem('token')\n  if (token) {\n    config.headers.Authorization = `Bearer ${token}`\n  }\n  return config\n})\n\nexport default api\n<\/code><\/pre>\n\n\n\n<p>&#x2705; Best practice<br>&#x2705; Token otomatis dikirim<br>&#x2705; Tidak perlu set header manual<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3&#xfe0f;&#x20e3; Halaman Login (views\/Login.vue)<\/h2>\n\n\n\n<p>&#x1f4c2; <code>src\/views\/Login.vue<\/code><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;template&gt;\n  &lt;div class=\"login\"&gt;\n    &lt;h2&gt;Login&lt;\/h2&gt;\n\n    &lt;form @submit.prevent=\"login\"&gt;\n      &lt;input\n        type=\"email\"\n        v-model=\"email\"\n        placeholder=\"Email\"\n        required\n      \/&gt;\n\n      &lt;input\n        type=\"password\"\n        v-model=\"password\"\n        placeholder=\"Password\"\n        required\n      \/&gt;\n\n      &lt;button type=\"submit\"&gt;Login&lt;\/button&gt;\n\n      &lt;p v-if=\"error\" style=\"color:red\"&gt;{{ error }}&lt;\/p&gt;\n    &lt;\/form&gt;\n  &lt;\/div&gt;\n&lt;\/template&gt;\n\n&lt;script setup&gt;\nimport { ref } from 'vue'\nimport api from '..\/services\/api'\nimport { useRouter } from 'vue-router'\n\nconst email = ref('')\nconst password = ref('')\nconst error = ref('')\nconst router = useRouter()\n\nconst login = async () =&gt; {\n  try {\n    const res = await api.post('\/login', {\n      email: email.value,\n      password: password.value\n    })\n\n    localStorage.setItem('token', res.data.token)\n    localStorage.setItem('user', JSON.stringify(res.data.user))\n\n    router.push('\/tambah')\n  } catch (err) {\n    error.value = 'Email atau password salah'\n  }\n}\n&lt;\/script&gt;\n<\/code><\/pre>\n\n\n\n<p>&#x1f3af; Fungsi:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Kirim login ke Laravel<\/li>\n\n\n\n<li>Simpan token<\/li>\n\n\n\n<li>Redirect ke halaman protected<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4&#xfe0f;&#x20e3; Vue Router (router\/index.js)<\/h2>\n\n\n\n<p>&#x1f4c2; <code>src\/router\/index.js<\/code><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import { createRouter, createWebHistory } from 'vue-router'\nimport Login from '..\/views\/Login.vue'\n\nconst routes = &#91;\n{ path: '\/', component: ListBerita },\n{ path: '\/tambah', component: FormBerita,\n    meta: { requiresAuth: true }\n},\n{ path: '\/login', component: Login },\n]\n\nconst router = createRouter({\n  history: createWebHistory(),\n  routes\n})\n\n\/\/ ROUTER GUARD\nrouter.beforeEach((to, from, next) =&gt; {\n  const token = localStorage.getItem('token')\n\n  if (to.meta.requiresAuth &amp;&amp; !token) {\n    next('\/login')\n  } else {\n    next()\n  }\n})\n\nexport default router\n<\/code><\/pre>\n\n\n\n<p>&#x1f510; <strong>Ini inti SPA Auth<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tanpa token \u2192 lempar ke <code>\/login<\/code><\/li>\n\n\n\n<li>Dengan token \u2192 boleh masuk<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5&#xfe0f;&#x20e3; main.js<\/h2>\n\n\n\n<p>&#x1f4c2; <code>src\/main.js<\/code><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import { createApp } from 'vue'\nimport App from '.\/App.vue'\nimport router from '.\/router'\n\ncreateApp(App)\n  .use(router)\n  .mount('#app')\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">6&#xfe0f;&#x20e3; Test Flow (WAJIB URUT)<\/h2>\n\n\n\n<p>1&#xfe0f;&#x20e3; Jalankan Laravel<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>php artisan serve\n<\/code><\/pre>\n\n\n\n<p>2&#xfe0f;&#x20e3; Jalankan Vue<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm run dev\n<\/code><\/pre>\n\n\n\n<p>3&#xfe0f;&#x20e3; Buka:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>http:&#47;&#47;localhost:5173\/login\n<\/code><\/pre>\n\n\n\n<p>4&#xfe0f;&#x20e3; Login pakai user Laravel<\/p>\n\n\n\n<p>5&#xfe0f;&#x20e3; Berhasil \u2192 otomatis ke <code>\/berita<\/code><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">&#x2705; JIKA BERHASIL<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Token tersimpan di <code>localStorage<\/code><\/li>\n\n\n\n<li>Request API pakai Authorization Bearer<\/li>\n\n\n\n<li>Halaman berita <strong>terkunci<\/strong><\/li>\n<\/ul>\n\n\n\n<p>&#x1f389; <strong>AUTH FRONTEND SELESAI<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Catatan Materi <\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Vue SPA menggunakan token-based authentication.<br>Token disimpan di localStorage dan dikirim otomatis lewat Axios interceptor.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Tambahan Fitur Logout<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>edit ListBerita.vue dan tambahkan script logout berikut di dalam tag &lt;template> : <\/p>\n<\/blockquote>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;div>\n    &lt;button v-if=\"isLogin\" @click=\"logout\">Logout&lt;\/button>\n&lt;\/div><\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>berikutnya tambahkan juga function untuk logoutnya didalam tag &lt;script> :<\/p>\n<\/blockquote>\n\n\n\n<pre class=\"wp-block-code\"><code>const isLogin = ref(false)\n\nonMounted(() => {\n  isLogin.value = !!localStorage.getItem('token')\n})\n\nconst logout = async () => {\n  try {\n    await api.post('\/logout')\n  } catch (e) {}\n\n  localStorage.removeItem('token')\n  localStorage.removeItem('user')\n\n  isLogin.value = false\n  router.push('\/login')\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Web POS (Point of Sale) adalah aplikasi berbasis web yang digunakan untuk mengelola transaksi penjualan di toko, kafe, restoran, atau bisnis retail lainnya. Sistem ini membantu kasir dalam mencatat penjualan, mengelola stok barang, mencetak struk, hingga membuat laporan penjualan secara otomatis. Karena berbasis web, POS dapat diakses dari browser tanpa instalasi, dapat digunakan di berbagai perangkat seperti laptop, tablet, atau komputer kasir.<\/p>\n","protected":false},"author":1,"featured_media":824,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,38],"tags":[35,140,141,142,22,138,139,143,144],"class_list":["post-1544","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-framework-laravel","category-tutorial-programming","tag-laravel-controller","tag-laravel-model","tag-laravel-route","tag-laravel-view-blade","tag-php-framework","tag-tutorial-laravel-12","tag-tutorial-laravel-migrate","tag-tutorial-laravel-mysql","tag-web-berita-laravel"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Tutorial Laravel 12 - Membuat Web Berita berbasis API - Bagian #5 (Setting Auth Vue Login dan Logout) - Gurututorku<\/title>\n<meta name=\"description\" content=\"laravel controller, laravel model, laravel route, laravel view blade, php framework, tutorial laravel 12, tutorial laravel migrate, tutorial laravel mysql, web berita laravel\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tutorial Laravel 12 - Membuat Web Berita berbasis API - Bagian #5 (Setting Auth Vue Login dan Logout) - Gurututorku\" \/>\n<meta property=\"og:description\" content=\"laravel controller, laravel model, laravel route, laravel view blade, php framework, tutorial laravel 12, tutorial laravel migrate, tutorial laravel mysql, web berita laravel\" \/>\n<meta property=\"og:url\" content=\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/\" \/>\n<meta property=\"og:site_name\" content=\"Gurututorku\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-04T08:04:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-05T04:14:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/laravel.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"750\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"gtadmin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"gtadmin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/\"},\"author\":{\"name\":\"gtadmin\",\"@id\":\"https:\/\/gurututorku.com\/blog\/#\/schema\/person\/6c85586545a9930343cd35e9bf4bd9a2\"},\"headline\":\"Tutorial Laravel 12 &#8211; Membuat Web Berita berbasis API &#8211; Bagian #5 (Setting Auth Vue Login dan Logout)\",\"datePublished\":\"2026-02-04T08:04:26+00:00\",\"dateModified\":\"2026-02-05T04:14:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/\"},\"wordCount\":237,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/gurututorku.com\/blog\/#\/schema\/person\/6c85586545a9930343cd35e9bf4bd9a2\"},\"image\":{\"@id\":\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/laravel.png\",\"keywords\":[\"laravel controller\",\"laravel model\",\"laravel route\",\"laravel view blade\",\"php framework\",\"tutorial laravel 12\",\"tutorial laravel migrate\",\"tutorial laravel mysql\",\"web berita laravel\"],\"articleSection\":[\"PHP Framework Laravel\",\"Tutorial Programming\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/\",\"url\":\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/\",\"name\":\"Tutorial Laravel 12 - Membuat Web Berita berbasis API - Bagian #5 (Setting Auth Vue Login dan Logout) - Gurututorku\",\"isPartOf\":{\"@id\":\"https:\/\/gurututorku.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/laravel.png\",\"datePublished\":\"2026-02-04T08:04:26+00:00\",\"dateModified\":\"2026-02-05T04:14:54+00:00\",\"description\":\"laravel controller, laravel model, laravel route, laravel view blade, php framework, tutorial laravel 12, tutorial laravel migrate, tutorial laravel mysql, web berita laravel\",\"breadcrumb\":{\"@id\":\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/#primaryimage\",\"url\":\"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/laravel.png\",\"contentUrl\":\"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/laravel.png\",\"width\":1000,\"height\":750},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/gurututorku.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tutorial Laravel 12 &#8211; Membuat Web Berita berbasis API &#8211; Bagian #5 (Setting Auth Vue Login dan Logout)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/gurututorku.com\/blog\/#website\",\"url\":\"https:\/\/gurututorku.com\/blog\/\",\"name\":\"Gurututorku - Learning today success tomorrow\",\"description\":\"Kelas dan Kursus Programming, Design, Multimedia dan Tutorial IT lainnya.\",\"publisher\":{\"@id\":\"https:\/\/gurututorku.com\/blog\/#\/schema\/person\/6c85586545a9930343cd35e9bf4bd9a2\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/gurututorku.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/gurututorku.com\/blog\/#\/schema\/person\/6c85586545a9930343cd35e9bf4bd9a2\",\"name\":\"gtadmin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/gurututorku.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/cropped-gurututorku-favicon.png\",\"contentUrl\":\"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/cropped-gurututorku-favicon.png\",\"width\":512,\"height\":512,\"caption\":\"gtadmin\"},\"logo\":{\"@id\":\"https:\/\/gurututorku.com\/blog\/#\/schema\/person\/image\/\"},\"sameAs\":[\"http:\/\/gurututorku.com\/blog\"],\"url\":\"https:\/\/gurututorku.com\/blog\/author\/gtadmin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Tutorial Laravel 12 - Membuat Web Berita berbasis API - Bagian #5 (Setting Auth Vue Login dan Logout) - Gurututorku","description":"laravel controller, laravel model, laravel route, laravel view blade, php framework, tutorial laravel 12, tutorial laravel migrate, tutorial laravel mysql, web berita laravel","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:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/","og_locale":"en_US","og_type":"article","og_title":"Tutorial Laravel 12 - Membuat Web Berita berbasis API - Bagian #5 (Setting Auth Vue Login dan Logout) - Gurututorku","og_description":"laravel controller, laravel model, laravel route, laravel view blade, php framework, tutorial laravel 12, tutorial laravel migrate, tutorial laravel mysql, web berita laravel","og_url":"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/","og_site_name":"Gurututorku","article_published_time":"2026-02-04T08:04:26+00:00","article_modified_time":"2026-02-05T04:14:54+00:00","og_image":[{"width":1000,"height":750,"url":"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/laravel.png","type":"image\/png"}],"author":"gtadmin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"gtadmin","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/#article","isPartOf":{"@id":"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/"},"author":{"name":"gtadmin","@id":"https:\/\/gurututorku.com\/blog\/#\/schema\/person\/6c85586545a9930343cd35e9bf4bd9a2"},"headline":"Tutorial Laravel 12 &#8211; Membuat Web Berita berbasis API &#8211; Bagian #5 (Setting Auth Vue Login dan Logout)","datePublished":"2026-02-04T08:04:26+00:00","dateModified":"2026-02-05T04:14:54+00:00","mainEntityOfPage":{"@id":"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/"},"wordCount":237,"commentCount":0,"publisher":{"@id":"https:\/\/gurututorku.com\/blog\/#\/schema\/person\/6c85586545a9930343cd35e9bf4bd9a2"},"image":{"@id":"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/#primaryimage"},"thumbnailUrl":"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/laravel.png","keywords":["laravel controller","laravel model","laravel route","laravel view blade","php framework","tutorial laravel 12","tutorial laravel migrate","tutorial laravel mysql","web berita laravel"],"articleSection":["PHP Framework Laravel","Tutorial Programming"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/","url":"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/","name":"Tutorial Laravel 12 - Membuat Web Berita berbasis API - Bagian #5 (Setting Auth Vue Login dan Logout) - Gurututorku","isPartOf":{"@id":"https:\/\/gurututorku.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/#primaryimage"},"image":{"@id":"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/#primaryimage"},"thumbnailUrl":"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/laravel.png","datePublished":"2026-02-04T08:04:26+00:00","dateModified":"2026-02-05T04:14:54+00:00","description":"laravel controller, laravel model, laravel route, laravel view blade, php framework, tutorial laravel 12, tutorial laravel migrate, tutorial laravel mysql, web berita laravel","breadcrumb":{"@id":"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/#primaryimage","url":"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/laravel.png","contentUrl":"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/laravel.png","width":1000,"height":750},{"@type":"BreadcrumbList","@id":"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-web-berita-berbasis-api-bagian-5-setting-auth-vue-login-dan-logout\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/gurututorku.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Tutorial Laravel 12 &#8211; Membuat Web Berita berbasis API &#8211; Bagian #5 (Setting Auth Vue Login dan Logout)"}]},{"@type":"WebSite","@id":"https:\/\/gurututorku.com\/blog\/#website","url":"https:\/\/gurututorku.com\/blog\/","name":"Gurututorku - Learning today success tomorrow","description":"Kelas dan Kursus Programming, Design, Multimedia dan Tutorial IT lainnya.","publisher":{"@id":"https:\/\/gurututorku.com\/blog\/#\/schema\/person\/6c85586545a9930343cd35e9bf4bd9a2"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/gurututorku.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/gurututorku.com\/blog\/#\/schema\/person\/6c85586545a9930343cd35e9bf4bd9a2","name":"gtadmin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/gurututorku.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/cropped-gurututorku-favicon.png","contentUrl":"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/cropped-gurututorku-favicon.png","width":512,"height":512,"caption":"gtadmin"},"logo":{"@id":"https:\/\/gurututorku.com\/blog\/#\/schema\/person\/image\/"},"sameAs":["http:\/\/gurututorku.com\/blog"],"url":"https:\/\/gurututorku.com\/blog\/author\/gtadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/gurututorku.com\/blog\/wp-json\/wp\/v2\/posts\/1544","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gurututorku.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gurututorku.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gurututorku.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gurututorku.com\/blog\/wp-json\/wp\/v2\/comments?post=1544"}],"version-history":[{"count":4,"href":"https:\/\/gurututorku.com\/blog\/wp-json\/wp\/v2\/posts\/1544\/revisions"}],"predecessor-version":[{"id":1553,"href":"https:\/\/gurututorku.com\/blog\/wp-json\/wp\/v2\/posts\/1544\/revisions\/1553"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gurututorku.com\/blog\/wp-json\/wp\/v2\/media\/824"}],"wp:attachment":[{"href":"https:\/\/gurututorku.com\/blog\/wp-json\/wp\/v2\/media?parent=1544"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gurututorku.com\/blog\/wp-json\/wp\/v2\/categories?post=1544"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gurututorku.com\/blog\/wp-json\/wp\/v2\/tags?post=1544"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}