Gestionar clientes usando Vue.js
Publicar componentes Vue para passport
php artisan vendor:publish --tag=passport-components
Instalar dependencias de Laravel Mix
npm install
Nota: las dependencias se encuentran en la carpeta node_modules. Es importante ignorar esta carpeta en caso de estar sincronizando el proyecto con algún sistema de versionamiento de código.
.gitignore
/node_modules
Compilar Assets (Laravel Mix)
Nota: en caso de hacer modificaciones recompilar
// Run all Mix tasks...
npm run dev
Registrar componentes
Registrar cada componente dentro en resources/assets/js/app.js.
Nota: los nombres de los componentes se utilizan como etiquetas html en las vistas que serán interpretadas por Vue y sustituidas por el contenido real del componente.
Importante -> recompilar luego de cada cambio
Gestionar Personal Tokens
Vue.component('passport-personal-access-tokens', require('./components/passport/PersonalAccessTokens.vue'));
Registrar ruta que retornará vista que hará uso del componente:
Route::get('/home/my-tokens', 'HomeController@getTokens')->name('personal-tokens');
class HomeController extends Controller
{
...
public function getTokens()
{
return view('home.personal-tokens');
}
}
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<passport-personal-access-tokens></passport-personal-access-tokens>
</div>
</div>
@endsection
En layout app.blade.php añadir enlace a la vista
<ul class="nav navbar-nav">
@if(Auth::check())
<li><a href="{{ route('personal-tokens') }}">My tokens</a></li>
@endif
</ul>
Al iniciar sesión con un usuario del sistema que tenga vinculado un cliente obtenemos accediendo a my-tokens

Usando esta interfaz se pueden crear tokens con la opción Create New Token.
Nota: el realizar peticiones con el access token personal funciona porque hemos agregado un cliente de tipo personal en nuestro sistema y adicionalmente este cliente no es usado directamente para obtener el access token sino para facilitar la posibilidad de que desde la interfaz gráfica el usuario lo obtenga.
Gestionar Clientes
Añadir dos componentes que permitirán visualizar los clientes que son propiedad del usuario que está activo en el momento y gestionar los clientes que ese usuario ha autorizado
Vue.component('passport-clients', require('./components/passport/Clients.vue'));
Vue.component('passport-authorized-clientes', require('./components/passport/AuthorizedClients.vue'));
Route::get('/home/my-clients', 'HomeController@getClients')->name('personal-clients');
Route::get('/home/authorized-clients', 'HomeController@getAuthorizedClients')->name('authorized-clients');
class HomeController extends Controller
{
...
public function getClients()
{
return view('home.personal-clients');
}
public function getAuthorizedClients()
{
return view('home.authorized-clients');
}
}
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<passport-clients></passport-clients>
</div>
</div>
@endsection
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<passport-authorized-clients></passport-authorized-clients>
</div>
</div>
@endsection
Al layout app.blade.php añadir enlaces a las vistas
<ul class="nav navbar-nav">
@if(Auth::check())
<li><a href="{{ route('personal-tokens') }}">My tokens</a></li>
<li><a href="{{ route('personal-clients') }}">My clients</a></li>
<li><a href="{{ route('authorized-clients') }}">Authorized clients</a></li>
@endif
</ul>
Last updated
Was this helpful?