@prestashopcorp/vue-auth

๐Ÿ”‘ Prestashop Vue Auth Module
21,876
Install
npm install @prestashopcorp/vue-auth
Latest Version:0.8.2
Vue:2 ยท 3
Last Updated:Apr 8, 2025
Links: npm
Maintainer: natsuflame

๐Ÿ”‘ Prestashop Vue Auth Module

This is a Vue integration for oidc-client-ts package: Read Documentation

Getting Started

Add dependencies to your project.

pnpm add @prestashopcorp/vue-auth

Then use the plugin after the router initialization.

import { createApp } from "vue";
import App from "./App.vue";
import router from "./router";

import { createPrestashopAuth } from "@prestashopcorp/vue-auth";

import "./assets/main.css";

const app = createApp(App);
const auth = createPrestashopAuth(router);

app.use(auth);
app.use(router);

app.mount("#app");

Configuration

There are several options available with the vue package

Config Property Description Default Value
authority OIDC Server URL https://oauth.prestashop.com/
client_id Your application client Id
scope Allowed for scopes for your application openid offline_access

Example

createPrestashopAuth(router, {
  authority: 'https://oauth-preprod.prestashop.com/',
  client_id: 'auth-code-client',
  scope: 'openid offline_access',
  extraQueryParams: {
    audience: 'https://accounts-api.distribution.prestashop.net',
  },
})

Usage

This package provide a way to authenticate user without managing the flow with the callback handling.

API

API is available as typings exported by the package.

Example

Using Injection
<template>
  <button v-if="user" @click="$auth.logout">Logout</button>
  <button v-else @click="$auth.login">Login</button>
</template>

<script lang="ts">
import { defineComponent } from "vue";

export default defineComponent({
  inject: ["$auth"],
  props: {},
  async data() {
    return {
      user: await this.$auth.fetchUser(),
    };
  },
});
</script>
Using composable
<template>
  <button v-if="user" @click="$auth.logout">Logout</button>
  <button v-else @click="$auth.login">Login</button>
</template>

<script lang="ts">
import { defineComponent } from "vue";
import { useAuth } from "@prestashopcorp/vue-auth";

export default defineComponent({
  props: {},
  async data() {
    const auth = useAuth()

    return {
      user: await auth.fetchUser(),
    };
  },
});
</script>

Related Packages

@prestashopcorp/puik-components

PUIK Vue 3 components library.

46,758 24
@prestashopcorp/puik-resolver

PUIK resolver - For unplugin-vue-components.

42,900 24
@prestashopcorp/segment-vue

plugin vue for segment

4,581 0

Version History

Version Released Vue License
0.8.2 ^2.0.0 || >=3.0.0
0.8.1 ^2.0.0 || >=3.0.0
0.8.0 ^2.0.0 || >=3.0.0
0.7.2 ^2.0.0 || >=3.0.0
0.7.0 ^2.0.0 || >=3.0.0