0.0.9 • Published 11 months ago

@larasense/ssg-auth-vue v0.0.9

Weekly downloads
-
License
-
Repository
-
Last release
11 months ago

Authentication for larasense/static-site-generation application using Vue3 and Pinia

static-site-generation is a Laravel Package for generate static sites using a command or a middleware on visit.

It is meant to be used on a Breeze or Jetstream with the InertiaJs stack, and provide a simple and quick way to generate and consume static content.

But it come with a cabeat. the site generated with no credentials and for that reason authentication need to be handeled difffernly on the Front side.

Instalation

npm i @larasense/ssg-auth-vue

Configuration

TBD

How to use

Backend

on app/Http/Middleware/HandleInertiaRequests.php or wherever the share props is set, call the getUserInfo() from the StaticSite Facade to replace the auth prop.

// app/Http/Middleware/HandleInertiaRequests.php
    /**
     * Define the props that are shared by default.
     *
     * @return array<string, mixed>
     */
    public function share(Request $request): array
    {
        return array_merge(parent::share($request), [
            // ....
            'auth' => StaticSite::getUserInfo(),
        ]);
    }

Frontend

On every page or component that need to access the user

<script setup>
import { useAuth } from "@larasense/ssg-auth-vue";
const props = defineProps({
  // ...
  auth: Object,
});
const auth = useAuth();
auth.setPropUser(props.auth.user);
</script>

and then replace $page.props.auth.user for auth.user

<Link v-if="auth.user" :href="route('dashboard')"
    class="">
Dashboard</Link>

<template v-else>
    <Link :href="route('login')"
        class="">
    Log in</Link>
    <Link v-if="canRegister" :href="route('register')"
        class="">
    Register</Link>
</template>
0.0.9

11 months ago

0.0.8

11 months ago

0.0.7

11 months ago

0.0.6

11 months ago

0.0.5

11 months ago

0.0.4

11 months ago

0.0.3

11 months ago

0.0.2

11 months ago

0.0.1

11 months ago