@vue-accounts/meteor

Vue Accounts store for Meteor's account system

Usage no npm install needed!

<script type="module">
  import vueAccountsMeteor from 'https://cdn.skypack.dev/@vue-accounts/meteor';
</script>

README

Vue Accounts Meteor

Connects Vue Accounts to your Meteor application.

Getting Started

In your Meteor + Vue application, install the following dependencies

meteor npm install @vue-accounts/core @vue-accounts/meteor

Initialize the Vuex Store, add the core plugin to Vue and the Meteor module + plugin like below:

import Vue from 'vue';
import Vuex from 'vuex';

import { AccountStorePlugin } from '@vue-accounts/core';
import MeteorStore, { StorePlugin } from '@vue-accounts/meteor';

Vue.use(Vuex);

// Just the normal Vuex store module setup
const store = new Vuex.Store({ 
  plugins: [StorePlugin], 
  modules: {
    account: MeteorStore, 
  },
});

Vue.use(AccountStorePlugin, { store }); // Make sure that you pass the store here

export default store;

The store is now connected and ready to use from anywhere in your app.

Adding components

You can either build your own forms or use existing component extensions. Right now there is one available:

meteor npm install @vue-accounts/bare-components

This will make standard forms available for login, registration, forgot-password and reset password. Below is an example:

<template>
  <main>
    <TheHeader />
    <button @click="$logout" v-if="isLoggedIn">Logout</button>

    <login-form v-if="!isLoggedIn" />

    <registration-form />
  </main>
</template>

<script>
  import TheHeader from './components/TheHeader';
  import { LoginForm, RegistrationForm } from '@vue-accounts/bare-components';

  export default {
    components: {
      RegistrationForm,
      LoginForm,
      TheHeader,
    },
    computed: {
      isLoggedIn() {
        return this.$store.state.account.userId;
      }
    }
  };
</script>

A complete example can be found in the vue-accounts repo's examples directory.