Hello guy’s welcome back to my blog. Today in this blog post, I am going to tell you, Vue 3 Laravel 8 AUTH User Registration Working Example.
Guy’s in this post we will do below things:
- Vue 3 Laravel 8 User registration.
- Vue3 add sweetalert2 popup for success and error messages which will come from laravel 8 backend.
- Vue3 Bootstrap 5 working.
Very first please check the working video:
Guy’s for setup laravel 8 auth user login and register backend process please check below two links and after it process with this post:
- Laravel8 create user login register pages tutorial.
- Laravel8 create database settings to save user data in database.
Friends now I proceed onwards and here is the working code snippet and please use this carefully to avoid the mistakes:
1. Firstly friends we need fresh vuejs(Vue 3) setup and for that we need to run below commands into our terminal and also w should have latest node version installed on our system.
Also guy’s in this I am installing bootstrap 5 for better looks and sweetalert2 popup for beautiful success messages:
npm install -g @vue/cli vue create vuedemo cd vuedemo npm install bootstrap --save npm install axios npm install -S vue-sweetalert2 npm run serve //http://localhost:8080/
2. Finally guys we need to add below code into our src/App.vue file to get final output on web browser:
<template> <div class="container p-5"> <h3 class="text-center mt-2 mb-5">therichpost.com</h3> <div class="col-md-12"> <form v-on:submit.prevent="create_user"> <div class="mb-3"> <label for="exampleFormControlInput1" class="form-label">Enter Name</label> <input type="text" name="name" class="form-control" id="exampleInputName1" aria-describedby="nameHelp" placeholder="Enter Username" v-model="form.name"> </div> <div class="mb-3"> <label for="exampleFormControlInput2" class="form-label">Enter Email</label> <input type="text" name="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Enter Email" v-model="form.email"> </div> <div class="mb-3"> <label for="exampleFormControlInput3" class="form-label">Enter Password</label> <input type="password" name="password" class="form-control" id="exampleInputPass1" aria-describedby="passHelp" placeholder="Enter Password" v-model="form.password"> </div> <button type="submit" class="btn btn-primary mt-5">Submit</button> </form> </div> </div> </template> <script> //importing modules import "bootstrap/dist/css/bootstrap.min.css"; import axios from 'axios' import Swal from 'sweetalert2' export default { data(){ return { form:{ name: '', email: '', password: '' } } }, methods:{ //user register function and api call create_user(){ axios .post('http://127.0.0.1:8000/api/register',this.form) .then((resp) =>{ //reset form after submission this.form.name = ''; this.form.email = ''; this.form.password = ''; //success message alert Swal.fire({ title: 'Hurry', text: "User has been registered successfully", icon: 'success', }); }) .catch((e)=>{ console.log(e); Swal.fire({ title: 'Hurry', text: e, icon: 'warning', }); }) } } } </script>
Laravel 8 api and controller functions:
1. Now we need to create new folder ‘API’ inside app/Http/Controllers folder and after that, we need to create AuthController.php file inside app/Http/Controllers/API folder and below code into it:
<?php namespace App\Http\Controllers\API; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Auth; use App\Models\User; use Validator; use Illuminate\Support\Str; class AuthController extends Controller { private $apiToken; public function __construct() { //create token $this->apiToken = uniqid(base64_encode(Str::random(40))); } /** * Register API * * @return \Illuminate\Http\Response */ public function register(Request $request) { //data validation $validator = Validator::make($request->all(), [ 'name' => 'required', 'email' => 'required|email', 'password' => 'required', ]); if ($validator->fails()) { return response()->json(['error'=>$validator->errors()]); } $postArray = $request->all(); $postArray['password'] = bcrypt($postArray['password']); $user = User::create($postArray); $success['token'] = $this->apiToken; $success['name'] = $user->name; // send output data to vue3 return response()->json([ 'status' => 'success', 'data' => $success, ]); } }
2. Now we need to add below code inside routes/api.php:
... Route::post('register', [App\Http\Controllers\API\AuthController::class, 'register'])->name('register');
Now guy’s we are done. In next post we will do vue 3 Laravel 8 user login working.
Guy’s if you have any kind of query then please comment below.
Jassa
Thanks
Recent Comments