{"id":1294,"date":"2024-08-22T10:30:25","date_gmt":"2024-08-22T10:30:25","guid":{"rendered":"https:\/\/www.appfinz.com\/blogs\/?p=1294"},"modified":"2025-05-15T04:51:42","modified_gmt":"2025-05-15T04:51:42","slug":"laravel-custom-login-with-session","status":"publish","type":"post","link":"https:\/\/www.appfinz.com\/blogs\/laravel-custom-login-with-session\/","title":{"rendered":"Laravel Custom Authentication | Registration, Login, Logout Process | Laravel login with session"},"content":{"rendered":"\n<p>Laravel is a powerful PHP framework that provides developers with the tools needed to build robust web applications quickly. One of the core features Laravel offers is its built-in authentication system, which allows you to manage user login and logout with minimal setup. However, there are situations where you might need to customize these functions to meet specific requirements. In this article, we\u2019ll walk through the steps to create a custom login and logout function in Laravel, giving you full control over the authentication process.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Understanding Laravel&#8217;s Default Authentication<\/strong><\/h2>\n\n\n\n<p>Before diving into custom solutions, it\u2019s helpful to understand how Laravel\u2019s default authentication works. Laravel\u2019s default authentication system comes with pre-built routes, controllers, and views to handle user login, registration, and password management. This system uses middleware to protect routes and ensure only authenticated users can access certain parts of your application.<\/p>\n\n\n\n<p>The <code>Auth facade <\/code>in Laravel provides several helper methods for handling authentication, including:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>Auth::attempt()<\/code>: Attempts to log the user in with provided credentials.<\/li>\n\n\n\n<li><code>Auth::check()<\/code>: Checks if the user is currently authenticated.<\/li>\n\n\n\n<li><code>Auth::logout()<\/code>: Logs the user out by clearing the session.<\/li>\n<\/ul>\n\n\n\n<p>These methods make it easy to implement standard authentication features, but for more complex use cases, you may need to build your own custom functions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Why Create Custom Login and Logout Functions?<\/strong><\/h2>\n\n\n\n<p>Customizing the login and logout process allows you to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Add Additional Logic:<\/strong> Implement business-specific requirements, such as logging login attempts or integrating with third-party services.<\/li>\n\n\n\n<li><strong>Use Different Fields:<\/strong> Allow users to log in with a username, phone number, or another unique identifier instead of the default email and password.<\/li>\n\n\n\n<li><strong>Customize Error Handling:<\/strong> Provide more informative or branded error messages to improve the user experience.<\/li>\n\n\n\n<li><strong>Enhance Security:<\/strong> Introduce additional security measures like throttling, CAPTCHA, or two-factor authentication.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Setting Up Your Laravel Project<\/strong><\/h2>\n\n\n\n<p>To start, ensure you have a Laravel project set up. If you don\u2019t have one yet, you can create a new Laravel project using Composer:<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;php&quot;,&quot;mime&quot;:&quot;text\/x-php&quot;,&quot;theme&quot;:&quot;midnight&quot;,&quot;lineNumbers&quot;:true,&quot;styleActiveLine&quot;:true,&quot;lineWrapping&quot;:true,&quot;readOnly&quot;:false,&quot;fileName&quot;:&quot;PHP&quot;,&quot;language&quot;:&quot;PHP&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;php&quot;}\">composer create-project --prefer-dist laravel\/laravel custom-auth<\/pre><\/div>\n\n\n\n<p>Once your project is ready, set up your database by updating the <code>.env<\/code> file with your database credentials:<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;php&quot;,&quot;mime&quot;:&quot;text\/x-php&quot;,&quot;theme&quot;:&quot;midnight&quot;,&quot;lineNumbers&quot;:true,&quot;styleActiveLine&quot;:true,&quot;lineWrapping&quot;:true,&quot;readOnly&quot;:false,&quot;fileName&quot;:&quot;PHP&quot;,&quot;language&quot;:&quot;PHP&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;php&quot;}\">DB_DATABASE=custom_auth\nDB_USERNAME=root\nDB_PASSWORD=your_password<\/pre><\/div>\n\n\n\n<p>Then, migrate the default user table to your database:<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;php&quot;,&quot;mime&quot;:&quot;text\/x-php&quot;,&quot;theme&quot;:&quot;midnight&quot;,&quot;lineNumbers&quot;:true,&quot;styleActiveLine&quot;:true,&quot;lineWrapping&quot;:true,&quot;readOnly&quot;:false,&quot;fileName&quot;:&quot;PHP&quot;,&quot;language&quot;:&quot;PHP&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;php&quot;}\">php artisan migrate<\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Creating Custom Login Functionality<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 1: Define Routes<\/strong><\/h3>\n\n\n\n<p>First, you need to define routes for your custom login in <code>routes\/web.php<\/code>:<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;php&quot;,&quot;mime&quot;:&quot;text\/x-php&quot;,&quot;theme&quot;:&quot;midnight&quot;,&quot;lineNumbers&quot;:true,&quot;styleActiveLine&quot;:true,&quot;lineWrapping&quot;:true,&quot;readOnly&quot;:false,&quot;fileName&quot;:&quot;PHP&quot;,&quot;language&quot;:&quot;PHP&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;php&quot;}\">Route::get('login', 'Auth\\CustomLoginController@showLoginForm')-&gt;name('login');\nRoute::post('login', 'Auth\\CustomLoginController@login');<\/pre><\/div>\n\n\n\n<p>These routes will direct users to the custom login form and handle the login request.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 2: Create the Login Controller<\/strong><\/h3>\n\n\n\n<p>Next, create a new controller for handling the login logic:<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;php&quot;,&quot;mime&quot;:&quot;text\/x-php&quot;,&quot;theme&quot;:&quot;midnight&quot;,&quot;lineNumbers&quot;:true,&quot;styleActiveLine&quot;:true,&quot;lineWrapping&quot;:true,&quot;readOnly&quot;:false,&quot;fileName&quot;:&quot;PHP&quot;,&quot;language&quot;:&quot;PHP&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;php&quot;}\">php artisan make:controller Auth\/CustomLoginController<\/pre><\/div>\n\n\n\n<p>In this controller, add methods to show the login form and handle the login process:<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;php&quot;,&quot;mime&quot;:&quot;text\/x-php&quot;,&quot;theme&quot;:&quot;midnight&quot;,&quot;lineNumbers&quot;:true,&quot;styleActiveLine&quot;:true,&quot;lineWrapping&quot;:true,&quot;readOnly&quot;:false,&quot;fileName&quot;:&quot;PHP&quot;,&quot;language&quot;:&quot;PHP&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;php&quot;}\">namespace App\\Http\\Controllers\\Auth;\n\nuse App\\Http\\Controllers\\Controller;\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Support\\Facades\\Auth;\n\nclass CustomLoginController extends Controller\n{\n    public function showLoginForm()\n    {\n        return view('auth.login');\n    }\n\n    public function login(Request $request)\n    {\n        \/\/ Validate the form data\n        $request-&gt;validate([\n            'email' =&gt; 'required|email',\n            'password' =&gt; 'required|string|min:8',\n        ]);\n\n        \/\/ Attempt to log the user in\n        if (Auth::attempt(['email' =&gt; $request-&gt;email, 'password' =&gt; $request-&gt;password])) {\n            \/\/ If successful, redirect to their intended location\n            return redirect()-&gt;intended('dashboard');\n        }\n\n        \/\/ If unsuccessful, redirect back with an error message\n        return back()-&gt;withErrors([\n            'email' =&gt; 'The provided credentials do not match our records.',\n        ]);\n    }\n}\n<\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 3: Create the Login View<\/strong><\/h3>\n\n\n\n<p>In the <code>resources\/views\/auth<\/code> directory, create a <code>login.blade.php<\/code> file for your custom login form:<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;php&quot;,&quot;mime&quot;:&quot;text\/x-php&quot;,&quot;theme&quot;:&quot;midnight&quot;,&quot;lineNumbers&quot;:true,&quot;styleActiveLine&quot;:true,&quot;lineWrapping&quot;:true,&quot;readOnly&quot;:false,&quot;fileName&quot;:&quot;PHP&quot;,&quot;language&quot;:&quot;PHP&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;php&quot;}\">@extends('layouts.app')\n\n@section('content')\n&lt;div class=&quot;container&quot;&gt;\n    &lt;div class=&quot;row justify-content-center&quot;&gt;\n        &lt;div class=&quot;col-md-8&quot;&gt;\n            &lt;div class=&quot;card&quot;&gt;\n                &lt;div class=&quot;card-header&quot;&gt;{{ __('Login') }}&lt;\/div&gt;\n\n                &lt;div class=&quot;card-body&quot;&gt;\n                    &lt;form method=&quot;POST&quot; action=&quot;{{ route('login') }}&quot;&gt;\n                        @csrf\n\n                        &lt;div class=&quot;form-group row&quot;&gt;\n                            &lt;label for=&quot;email&quot; class=&quot;col-md-4 col-form-label text-md-right&quot;&gt;{{ __('E-Mail Address') }}&lt;\/label&gt;\n\n                            &lt;div class=&quot;col-md-6&quot;&gt;\n                                &lt;input id=&quot;email&quot; type=&quot;email&quot; class=&quot;form-control @error('email') is-invalid @enderror&quot; name=&quot;email&quot; value=&quot;{{ old('email') }}&quot; required autofocus&gt;\n\n                                @error('email')\n                                    &lt;span class=&quot;invalid-feedback&quot; role=&quot;alert&quot;&gt;\n                                        &lt;strong&gt;{{ $message }}&lt;\/strong&gt;\n                                    &lt;\/span&gt;\n                                @enderror\n                            &lt;\/div&gt;\n                        &lt;\/div&gt;\n\n                        &lt;div class=&quot;form-group row&quot;&gt;\n                            &lt;label for=&quot;password&quot; class=&quot;col-md-4 col-form-label text-md-right&quot;&gt;{{ __('Password') }}&lt;\/label&gt;\n\n                            &lt;div class=&quot;col-md-6&quot;&gt;\n                                &lt;input id=&quot;password&quot; type=&quot;password&quot; class=&quot;form-control @error('password') is-invalid @enderror&quot; name=&quot;password&quot; required&gt;\n\n                                @error('password')\n                                    &lt;span class=&quot;invalid-feedback&quot; role=&quot;alert&quot;&gt;\n                                        &lt;strong&gt;{{ $message }}&lt;\/strong&gt;\n                                    &lt;\/span&gt;\n                                @enderror\n                            &lt;\/div&gt;\n                        &lt;\/div&gt;\n\n                        &lt;div class=&quot;form-group row mb-0&quot;&gt;\n                            &lt;div class=&quot;col-md-8 offset-md-4&quot;&gt;\n                                &lt;button type=&quot;submit&quot; class=&quot;btn btn-primary&quot;&gt;\n                                    {{ __('Login') }}\n                                &lt;\/button&gt;\n                            &lt;\/div&gt;\n                        &lt;\/div&gt;\n                    &lt;\/form&gt;\n                &lt;\/div&gt;\n            &lt;\/div&gt;\n        &lt;\/div&gt;\n    &lt;\/div&gt;\n&lt;\/div&gt;\n@endsection\n<\/pre><\/div>\n\n\n\n<p>This form collects the user\u2019s email and password and submits it to the custom login route.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 4: Test the Login Process<\/strong><\/h3>\n\n\n\n<p>You can now test the custom login functionality by running your Laravel development server:<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;php&quot;,&quot;mime&quot;:&quot;text\/x-php&quot;,&quot;theme&quot;:&quot;midnight&quot;,&quot;lineNumbers&quot;:true,&quot;styleActiveLine&quot;:true,&quot;lineWrapping&quot;:true,&quot;readOnly&quot;:false,&quot;fileName&quot;:&quot;PHP&quot;,&quot;language&quot;:&quot;PHP&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;php&quot;}\">php artisan serve<\/pre><\/div>\n\n\n\n<p>Visit <code>http:\/\/localhost:8000\/login<\/code>, and try logging in with a registered user. If everything is set up correctly, you should be redirected to the dashboard after a successful login.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Creating Custom Logout Functionality<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 1: Define the Logout Route<\/strong><\/h3>\n\n\n\n<p>Add a logout route to <code>routes\/web.php<\/code>:<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;php&quot;,&quot;mime&quot;:&quot;text\/x-php&quot;,&quot;theme&quot;:&quot;midnight&quot;,&quot;lineNumbers&quot;:true,&quot;styleActiveLine&quot;:true,&quot;lineWrapping&quot;:true,&quot;readOnly&quot;:false,&quot;fileName&quot;:&quot;PHP&quot;,&quot;language&quot;:&quot;PHP&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;php&quot;}\">Route::post('logout', 'Auth\\CustomLoginController@logout')-&gt;name('logout');\n<\/pre><\/div>\n\n\n\n<p>This route will handle the logout request.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 2: Implement the Logout Method<\/strong><\/h3>\n\n\n\n<p>In your <code>CustomLoginController<\/code>, add a method to handle the logout process:<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;php&quot;,&quot;mime&quot;:&quot;text\/x-php&quot;,&quot;theme&quot;:&quot;midnight&quot;,&quot;lineNumbers&quot;:true,&quot;styleActiveLine&quot;:true,&quot;lineWrapping&quot;:true,&quot;readOnly&quot;:false,&quot;fileName&quot;:&quot;PHP&quot;,&quot;language&quot;:&quot;PHP&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;php&quot;}\">public function logout(Request $request)\n{\n    Auth::logout();\n\n    $request-&gt;session()-&gt;invalidate();\n\n    $request-&gt;session()-&gt;regenerateToken();\n\n    return redirect('\/');\n}\n<\/pre><\/div>\n\n\n\n<p>This method logs the user out by clearing their session and redirecting them to the homepage.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 3: Add a Logout Button<\/strong><\/h3>\n\n\n\n<p>To trigger the logout, you can add a logout button to your application&#8217;s navigation or dashboard:<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;php&quot;,&quot;mime&quot;:&quot;text\/x-php&quot;,&quot;theme&quot;:&quot;midnight&quot;,&quot;lineNumbers&quot;:true,&quot;styleActiveLine&quot;:true,&quot;lineWrapping&quot;:true,&quot;readOnly&quot;:false,&quot;fileName&quot;:&quot;PHP&quot;,&quot;language&quot;:&quot;PHP&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;php&quot;}\">&lt;form id=&quot;logout-form&quot; action=&quot;{{ route('logout') }}&quot; method=&quot;POST&quot; style=&quot;display: none;&quot;&gt;\n    @csrf\n&lt;\/form&gt;\n\n&lt;a href=&quot;{{ route('logout') }}&quot;\n    onclick=&quot;event.preventDefault();\n             document.getElementById('logout-form').submit();&quot;&gt;\n    {{ __('Logout') }}\n&lt;\/a&gt;\n<\/pre><\/div>\n\n\n\n<p>This button will send a POST request to the logout route when clicked, effectively logging the user out.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 4: Test the Logout Process<\/strong><\/h3>\n\n\n\n<p>Finally, test the<strong> logout functionality by logging in as a user<\/strong> and then logging out using the button you just created. After logging out, you should be redirected to the homepage, and your session should be invalidated.<\/p>\n\n\n\n<p>Creating <strong>custom login and logout functions in Laravel <\/strong>gives you the flexibility to tailor the authentication process to your application\u2019s unique requirements. Whether you need to add additional validation, use different login credentials, or implement custom security measures, Laravel provides the tools to do so efficiently.<\/p>\n\n\n\n<details class=\"wp-block-details has-background is-layout-flow wp-block-details-is-layout-flow\" style=\"background-color:#eeeeee\"><summary>How can I customize the default Laravel authentication?<\/summary>\n<p>Customizing the default Laravel authentication involves modifying the default controllers, routes, and views, or creating entirely new ones to suit your specific needs.<\/p>\n<\/details>\n\n\n\n<details class=\"wp-block-details has-background is-layout-flow wp-block-details-is-layout-flow\" style=\"background-color:#eeeeee\"><summary>Is it safe to handle custom authentication without using Laravel\u2019s built-in features?<\/summary>\n<p>Yes, it is safe as long as you follow security best practices, such as proper data validation, password hashing, and implementing measures like CSRF protection.<\/p>\n<\/details>\n\n\n\n<details class=\"wp-block-details has-background is-layout-flow wp-block-details-is-layout-flow\" style=\"background-color:#eeeeee\"><summary>What are the best practices for storing user passwords securely?<\/summary>\n<p>Always hash passwords using algorithms like Bcrypt or Argon2, and never store passwords in plain text.<\/p>\n<\/details>\n\n\n\n<details class=\"wp-block-details has-background is-layout-flow wp-block-details-is-layout-flow\" style=\"background-color:#eeeeee\"><summary>Can I implement social media login in a custom Laravel authentication system?<\/summary>\n<p>Yes, you can integrate social media login by using Laravel Socialite or similar packages to handle OAuth authentication.<\/p>\n<\/details>\n\n\n\n<details class=\"wp-block-details has-background is-layout-flow wp-block-details-is-layout-flow\" style=\"background-color:#eeeeee\"><summary>How do I integrate multi-factor authentication into my custom authentication system?<\/summary>\n<p>Multi-factor authentication can be integrated by using packages that support 2FA, or by manually implementing methods to send one-time passwords (OTPs) to users via email or SMS.<\/p>\n<\/details>\n\n\n\n<p>If you\u2019re planning to revamp your online presence, don\u2019t miss exploring our\u00a0<a href=\"https:\/\/www.appfinz.com\/website-designing-company-in-delhi\"><strong>website designing services<\/strong><\/a>\u00a0and custom\u00a0<strong><a href=\"https:\/\/www.appfinz.com\/website-development-company-in-delhi\">website development<\/a><\/strong>\u00a0solutions tailored to your business needs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Laravel is a powerful PHP framework that provides developers with the tools needed to build<\/p>\n","protected":false},"author":1,"featured_media":1295,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21],"tags":[203,200,201,202,204,206,205],"class_list":["post-1294","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-laravel-authentication-guide","tag-laravel-custom-authentication","tag-laravel-custom-login","tag-laravel-custom-logout","tag-laravel-session-management","tag-laravel-user-authentication","tag-secure-login-in-laravel"],"_links":{"self":[{"href":"https:\/\/www.appfinz.com\/blogs\/wp-json\/wp\/v2\/posts\/1294","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appfinz.com\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appfinz.com\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appfinz.com\/blogs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appfinz.com\/blogs\/wp-json\/wp\/v2\/comments?post=1294"}],"version-history":[{"count":2,"href":"https:\/\/www.appfinz.com\/blogs\/wp-json\/wp\/v2\/posts\/1294\/revisions"}],"predecessor-version":[{"id":1347,"href":"https:\/\/www.appfinz.com\/blogs\/wp-json\/wp\/v2\/posts\/1294\/revisions\/1347"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.appfinz.com\/blogs\/wp-json\/wp\/v2\/media\/1295"}],"wp:attachment":[{"href":"https:\/\/www.appfinz.com\/blogs\/wp-json\/wp\/v2\/media?parent=1294"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appfinz.com\/blogs\/wp-json\/wp\/v2\/categories?post=1294"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appfinz.com\/blogs\/wp-json\/wp\/v2\/tags?post=1294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}