Simple Vue.js authentication library

Overview

[WARNING]: README file is currently in process of rewrite and will be released soon.

vue-authenticate

Join the chat at https://gitter.im/vuejs-auth/vue-authenticate

vue-authenticate is easily configurable solution for Vue.js that provides local login/registration as well as Social login using Github, Facebook, Google and other OAuth providers.

The best part about this library is that it is not strictly coupled to one request handling library like vue-axios. You will be able to use it with different libraries.

For now it is tested to work with vue-resource and axios (using vue-axios wrapper).

WARNING: From version 1.3.0 default request library is axios using vue-axios wrapper plugin.

This library was inspired by well known authentication library for Angular called Satellizer developed by Sahat Yalkabov. They share almost identical configuration and API so you can easily switch from Angular to Vue.js project.

Supported OAuth providers and configurations

  1. Facebook (https://github.com/dgrubelic/vue-authenticate/blob/master/src/options.js#L21)
  2. Google (https://github.com/dgrubelic/vue-authenticate/blob/master/src/options.js#L34)
  3. Github (https://github.com/dgrubelic/vue-authenticate/blob/master/src/options.js#L49)
  4. Instagram (https://github.com/dgrubelic/vue-authenticate/blob/master/src/options.js#L61)
  5. Twitter (https://github.com/dgrubelic/vue-authenticate/blob/master/src/options.js#L72)
  6. Bitbucket (https://github.com/dgrubelic/vue-authenticate/blob/master/src/options.js#L81)
  7. LinkedIn (https://github.com/dgrubelic/vue-authenticate/blob/master/src/options.js#L93)
  8. Microsoft Live (https://github.com/dgrubelic/vue-authenticate/blob/master/src/options.js#L106)

Installation

npm install vue-authenticate

Usage

import Vue from 'vue'
import VueAxios from 'vue-axios'
import VueAuthenticate from 'vue-authenticate'
import axios from 'axios';

Vue.use(VueAxios, axios)
Vue.use(VueAuthenticate, {
  baseUrl: 'http://localhost:3000', // Your API domain
  
  providers: {
    github: {
      clientId: '',
      redirectUri: 'http://localhost:8080/auth/callback' // Your client app URL
    }
  }
})

Email & password login and registration

new Vue({
  methods: {
    login: function () {
      this.$auth.login({ email, password }).then(function () {
        // Execute application logic after successful login
      })
    },

    register: function () {
      this.$auth.register({ name, email, password }).then(function () {
        // Execute application logic after successful registration
      })
    }
  }
})
<button @click="login()">Login</button>
<button @click="register()">Register</button>

Social account authentication

new Vue({
  methods: {
    authenticate: function (provider) {
      this.$auth.authenticate(provider).then(function () {
        // Execute application logic after successful social authentication
      })
    }
  }
})
<button @click="authenticate('github')">auth Github</button>
<button @click="authenticate('facebook')">auth Facebook</button>
<button @click="authenticate('google')">auth Google</button>
<button @click="authenticate('twitter')">auth Twitter</button>

Vuex authentication

Import and initialize all required libraries

// ES6 example
import Vue from 'vue'
import Vuex from 'vuex'
import VueAxios from 'vue-axios'
import { VueAuthenticate } from 'vue-authenticate'
import axios from 'axios';

Vue.use(Vuex)
Vue.use(VueAxios, axios)

const vueAuth = new VueAuthenticate(Vue.prototype.$http, {
  baseUrl: 'http://localhost:4000'
})
// CommonJS example
var Vue = require('vue')
var Vuex = require('vuex')
var VueAxios = require('vue-axios')
var VueAuthenticate = require('vue-authenticate')
var axios = require('axios');

Vue.use(Vuex)
Vue.use(VueAxios, axios)

// ES5, CommonJS example
var vueAuth = VueAuthenticate.factory(Vue.prototype.$http, {
  baseUrl: 'http://localhost:4000'
})

Once you have created VueAuthenticate instance, you can use it in Vuex store like this:

export default new Vuex.Store({
  
  // You can use it as state property
  state{
    isAuthenticated: false
  },

  // You can use it as a state getter function (probably the best solution)
  getters: {
    isAuthenticated () {
      return vueAuth.isAuthenticated()
    }
  },

  // Mutation for when you use it as state property
  mutations: {
    isAuthenticated (state, payload) {
      state.isAuthenticated = payload.isAuthenticated
    }
  },

  actions: {

    // Perform VueAuthenticate login using Vuex actions
    login (context, payload) {

      vueAuth.login(payload.user, payload.requestOptions).then((response) => {
        context.commit('isAuthenticated', {
          isAuthenticated: vueAuth.isAuthenticated()
        })
      })

    }
  }
})

Later in Vue component, you can dispatch Vuex state action like this

// You define your store logic here
import store from './store.js'

new Vue({
  store,

  computed: {
    isAuthenticated: function () {
      return this.$store.getters.isAuthenticated()
    }
  },

  methods: {
    login () {
      this.$store.dispatch('login', { user, requestOptions })
    }
  }
})

Custom request and response interceptors

You can easily setup custom request and response interceptors if you use different request handling library.

Important: You must set both request and response interceptors at all times.

/**
* This is example for request and response interceptors for axios library
*/

Vue.use(VueAuthenticate, {
  bindRequestInterceptor: function () {
    this.$http.interceptors.request.use((config) => {
      if (this.isAuthenticated()) {
        config.headers['Authorization'] = [
          this.options.tokenType, this.getToken()
        ].join(' ')
      } else {
        delete config.headers['Authorization']
      }
      return config
    })
  },

  bindResponseInterceptor: function () {
    this.$http.interceptors.response.use((response) => {
      this.setToken(response)
      return response
    })
  }
})

License

The MIT License (MIT)

Copyright (c) 2017 Davor Grubelić

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Issues
  • Interceptor not working.

    Interceptor not working.

    Thanks for this excellent library. I'm currently connecting vue-authenticate with IdentityServer (Oauth2 and I'm using the Authorization CODE flow) and I'm at the point where I receive a valid bearer token from the IdentityServer. The token is stored in local storage with key name: vue-authenticate.vueauth_token.

    the problem I'm facing is that the token is not sent automatically on each request towards the API. I'm using vue-resource, so did i understand correctly that no explicit configuration is necessary ?

    This is my main.js, Am I doing something wrong?

    import Vue from 'vue'
    import Quasar from 'quasar'
    import router from './router'
    import vuelidate from 'vuelidate'
    import VueResource from 'vue-resource'
    import VueAuthenticate from 'vue-authenticate'
    Vue.use(Quasar) // Install Quasar Framework
    Vue.use(vuelidate)
    Vue.use(VueResource)
    
    Vue.use(VueAuthenticate, {
      baseUrl: 'http://localhost:8080',
      providers: {
        identSrv: {
          name: 'identSrv',
          url: 'Token/Exchange',
          authorizationEndpoint: 'http://localhost:5000/connect/authorize', 
          redirectUri: window.location.origin || window.location.protocol + '//' + window.location.host,
          scope: ['profile', 'openid', 'MyApi'],
          responseType: 'code',
          scopePrefix: '',
          scopeDelimiter: ' ',
          requiredUrlParams: ['scope', 'nonce'],
          optionalUrlParams: ['display', 'state'],
          state: function () {
            var val = ((Date.now() + Math.random()) * Math.random()).toString().replace('.', '')
            return encodeURIComponent(val)
          },
          display: 'popup',
          oauthType: '2.0',
          clientId: 'PanelButlerVueJs',
    
          nonce: function () {
            var val = ((Date.now() + Math.random()) * Math.random()).toString().replace('.', '')
            return encodeURIComponent(val)
          },
          popupOptions: { width: 452, height: 633 }
        }
      }
    })
    
    
    opened by paulvanbladel 19
  • Vue is not defined in services/auth.js

    Vue is not defined in services/auth.js

    According to your vue-authenticate-site project I can make service to instate new VueAuthenticate object and later import somewhere else. Problem is, that Vue is not defined here. If I console.log(Vue) it says, that it's a constructor. Should I make new Vue object?

    My services/auth.js:

    import Vue from 'vue'
    import VueResource from 'vue-resource'
    import VueAuthenticate from 'vue-authenticate'
    Vue.use(VueResource)
    
    const vueAuthInstance = new VueAuthenticate(Vue.http, {
      baseUrl: 'http://localhost:8000',
      loginUrl: '/oauth/token'
    })
    
    export default vueAuthInstance
    

    In main.js I have Vue of course.

    new Vue({
      el: '#app',
      router,
      i18n,
      store
    });
    
    question 
    opened by arysom 16
  • Possible Unhandled Promise Rejection: Error: Authentication failed

    Possible Unhandled Promise Rejection: Error: Authentication failed

    Since today, i got the following error in my develop system (docker, webpack, vue-cli)

    It still works on production, the only difference from dev system is:

    • not available from outside
    • no ssl

    Here more information about the error:

    bildschirmfoto 2018-03-14 um 17 29 08 bildschirmfoto 2018-03-14 um 17 29 39 bildschirmfoto 2018-03-14 um 17 29 55

    The only thing that changed:

    https://developers.facebook.com/blog/post/2017/12/18/strict-uri-matching/ https://developers.facebook.com/docs/facebook-login/security/#strict_mode

    But I integrated the URIs for strict mode already in december.

    opened by solidevolution 15
  • Unable to get it working with axios

    Unable to get it working with axios

    I followed the instructions for adding axios, but can not get it to work. The problem is that this.$http is undefined. Vue is pretty new to me, but it might be that "this" is the problem? When I replace the example interceptor code this.$http to Vue.axios, the interceptor does not throw errors anymore, but the lib does (again with this.$http being undefined).

    My layout is just like with vue-authenticate-site. Any help is appreciated.

    https://gist.github.com/philippeluickx/1632139a90294aced85830dec3e915b3

    Looking at https://github.com/imcvampire/vue-axios#usage

    This wrapper bind axios to Vue or this if you're using single file component.

    Is there any way to hook this.$http globally?

    opened by philippeluickx 14
  • Facebook login error

    Facebook login error

    Hi,

    First of all, great solution. It's just what I was looking for. I have a question regarding integration. I ran it and I get a error saying this:

    Possible Unhandled Promise Rejection: Error: Authentication error occurred
    Stack trace:
    authenticate/</<@webpack-internal:///45:1285:14
    

    I go the same when I did the integration based on the readme of vue-authenticate. My assumption is that I am not responding as expected on the callback url.

    On the server side call Facebook does reply with all good, no issue, http 200.

    What is the expected response there? Or, even better, have you seen the error before?

    I am currently checking the code of vue-authenticate and do a step by step debug to try to figure it out, just wanted to start a thread here while I do that.

    question 
    opened by edimoldovan 10
  • Uncaught TypeError: Cannot read property 'use' of undefined

    Uncaught TypeError: Cannot read property 'use' of undefined

    I use Vue-Authenticate but I have an error when I click on login button for social...

    import VueAuthenticate from 'vue-authenticate'
    
    Vue.use(VueAuthenticate, {
      tokenName: 'access_token',
      baseUrl: 'http://api.website.com',
      storageType: 'localStorage',
      providers: {
        twitter: {
          name: 'twitter',
          url: '/auth/twitter',
          authorizationEndpoint: 'https://api.twitter.com/oauth/authenticate',
          redirectUri: window.location.origin,
          oauthType: '1.0',
          popupOptions: { width: 495, height: 645 }
        }
      }
    })
    

    Error:

    Uncaught TypeError: Cannot read property 'use' of undefined at VueAuthenticate.bindRequestInterceptor (vue-authenticate.es2015.js?5ab3:510) at new VueAuthenticate (vue-authenticate.es2015.js?5ab3:1193) at VueComponent.get (vue-authenticate.es2015.js?5ab3:1407) at VueComponent.authenticate (Index.vue?56a7:76) at Proxy.boundFn (vue.esm.js?efeb:186) at click (Index.vue?d3fa:68) at invoker (vue.esm.js?efeb:1937) at HTMLButtonElement.fn._withTask.fn._withTask (vue.esm.js?efeb:1772)

    Method:

    methods: {
        authenticate: function (provider) {
          this.$auth.authenticate(provider).then((authResponse) => {
            console.log(provider, authResponse)
            alert('test', provider)
          })
        }
      }
    
    opened by pirmax 10
  • app.js:17551 Uncaught TypeError: _vueAuthenticate2.default.factory is not a function

    app.js:17551 Uncaught TypeError: _vueAuthenticate2.default.factory is not a function

    It is me again :)

    When making new instance of Vue Authenticate, no matter in app.js or store.js it gives me error. My code:

    const vueAuth = VueAuthenticate.factory(Vue.http, {
      baseUrl: 'http://localhost:4000'
    })
    
    question 
    opened by arysom 9
  • Replace vue-resource with axios as default request library

    Replace vue-resource with axios as default request library

    enhancement in progress 
    opened by dgrubelic 9
  • Browserify: VueAuthenticate is not a constructor

    Browserify: VueAuthenticate is not a constructor

    This:

    import Vue from 'vue'
    import { VueAuthenticate } from 'vue-authenticate'
    
    console.log("VueAuthenticate",VueAuthenticate); // undefined
    
    const vueAuthInstance = new VueAuthenticate(Vue.http, {
    

    gives this error:

    ncaught TypeError: _vueAuthenticate.VueAuthenticate is not a constructor

    If I import the whole module import VueAuthenticate from vue-authenticate, I receive a Vue plugin object, which isn't a factory according to a similar issue. What am I doing wrong?

    opened by designbyadrian 9
  • how to read user data

    how to read user data

    letsay I have provider like this..

     google: {
          clientId: 'SOMENUMBER.apps.googleusercontent.com',
          redirectUri: 'http://localhost:8080/auth/callback' // Your client app URL
        }
    

    and method like this..

    	 authenticate(provider) {
    		 this.$auth.logout();
                this.response = null
    			this.$auth.authenticate(provider).then(function (authResponse) {
    				console.log('authcalled');
    				// Execute application logic after successful social authentication
    			})
    	   }
    

    but after login I select google account it want to go /auth/google no matter what i do, how do pick user data response in js client. Do I really need server part at client app? and how to read user data?

    question 
    opened by Jacknq 7
  • Can this be used for an enterprise identity provider (non-Social provider)?

    Can this be used for an enterprise identity provider (non-Social provider)?

    Hi, Is this package only for using social providers (Google, Github, etc.) ? Could I use my own company's identity provider ?

    opened by dosstx 5
  • Bump browserslist from 4.16.3 to 4.16.6

    Bump browserslist from 4.16.3 to 4.16.6

    Bumps browserslist from 4.16.3 to 4.16.6.

    Changelog

    Sourced from browserslist's changelog.

    4.16.6

    • Fixed npm-shrinkwrap.json support in --update-db (by Geoff Newman).

    4.16.5

    • Fixed unsafe RegExp (by Yeting Li).

    4.16.4

    • Fixed unsafe RegExp.
    • Added artifactory support to --update-db (by Ittai Baratz).
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Git hub login not working for the first time

    Git hub login not working for the first time

    when ever i clear cache and try using GitHub auth i receive a vue-authenticate warning. Screenshot (9)

    but when Google or Facebook login is made then GitHub works all of a sudden.

    opened by enyoghasim 0
  • Better doc

    Better doc

    The library is really hard to use. It is quite useful and powerful but the doc doesn't live up to basic usages of the library.

    For example:

    • There isn't a list of available methods
    • There isn't a clear way explaining what the library expects from the API calls and what happens to the axios instance as a consequence
    • It lacks examples
    opened by raphael-jolimoi 0
  • Can I use OAuth2 Class directly? or Could you please consider exporting it?

    Can I use OAuth2 Class directly? or Could you please consider exporting it?

    Hello, I really appreciate all your efforts to provide with this awesome library. But, I have an issue. one of my browser (whale sidebar) doesn't work with popup, which makes it impossible to close popup.

    So, I need to implement OAuth2's exchangeForToken on my own using information of redirected URL. And to do that, I need to copy and paste OAuth2 and other utils for that to work. It works well.

    It will be really helpful if I can use OAuth2 class in this library, and think it would make this more expandable.

    opened by sjquant 3
  • There is 1 vulnerability that requires manual review in current version

    There is 1 vulnerability that requires manual review in current version

    High Server-Side Request Forgery
    Package axios
    Patched in >=0.21.1
    Dependency of vue-authenticate
    Path vue-authenticate > axios
    More info https://npmjs.com/advisories/1594

    opened by IHaveHandedInMyResignation 1
  • TS refactoring

    TS refactoring

    Full Typescript support.

    opened by dgrubelic 0
  • Bump lodash from 4.17.15 to 4.17.21

    Bump lodash from 4.17.15 to 4.17.21

    Bumps lodash from 4.17.15 to 4.17.21.

    Commits
    • f299b52 Bump to v4.17.21
    • c4847eb Improve performance of toNumber, trim and trimEnd on large input strings
    • 3469357 Prevent command injection through _.template's variable option
    • ded9bc6 Bump to v4.17.20.
    • 63150ef Documentation fixes.
    • 00f0f62 test.js: Remove trailing comma.
    • 846e434 Temporarily use a custom fork of lodash-cli.
    • 5d046f3 Re-enable Travis tests on 4.17 branch.
    • aa816b3 Remove /npm-package.
    • d7fbc52 Bump to v4.17.19
    • Additional commits viewable in compare view
    Maintainer changes

    This version was pushed to npm by bnjmnt4n, a new releaser for lodash since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Facebook Login Issue

    Facebook Login Issue

    Hello,

    I am login through facebook on localhost its working properly, but when login on live website it thrown error.

    Some times it work but most of the time it thrown error.

    Error: Syntax error, unrecognized expression: #access_token=EAAFchzJnZBL0BAIdFytmui9g1KzMeFteBbskDIIl8hFBuWwc8lA9MRClrWEfPAzzZBhwnlW79P2hQ9vj4AcbwkthTItgtn3r3ttCp7TZBN6f1tdSCrr3tBxX2EXiyIzd3KRikeHOIxq1cbWhqUVIREXpITZAPfN1ZBwyEdvwdyxJl8HKmK3i8zT8pQX1wFxAZD&data_access_expiration_time=1621315821&expires_in=5181022 at Function.se.error (common_libs.js?v=1.1:1) at se.tokenize (common_libs.js?v=1.1:1) at se.select (common_libs.js?v=1.1:1) at Function.se [as find] (common_libs.js?v=1.1:1) at S.fn.init.find (common_libs.js?v=1.1:1) at new S.fn.init (common_libs.js?v=1.1:1) at S (common_libs.js?v=1.1:1) at f.mounted (fed3fbb.js:1) at Qt (fe814ac.js:1) at cn (fe814ac.js:1)

    Can't understand what is the issue. Plz help.

    opened by durgacha1 0
  • Bump axios from 0.18.0 to 0.21.1

    Bump axios from 0.18.0 to 0.21.1

    Bumps axios from 0.18.0 to 0.21.1.

    Release notes

    Sourced from axios's releases.

    v0.21.1

    0.21.1 (December 21, 2020)

    Fixes and Functionality:

    • Hotfix: Prevent SSRF (#3410)
    • Protocol not parsed when setting proxy config from env vars (#3070)
    • Updating axios in types to be lower case (#2797)
    • Adding a type guard for AxiosError (#2949)

    Internal and Tests:

    • Remove the skipping of the socket http test (#3364)
    • Use different socket for Win32 test (#3375)

    Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:

    v0.21.0

    0.21.0 (October 23, 2020)

    Fixes and Functionality:

    • Fixing requestHeaders.Authorization (#3287)
    • Fixing node types (#3237)
    • Fixing axios.delete ignores config.data (#3282)
    • Revert "Fixing overwrite Blob/File type as Content-Type in browser. (#1773)" (#3289)
    • Fixing an issue that type 'null' and 'undefined' is not assignable to validateStatus when typescript strict option is enabled (#3200)

    Internal and Tests:

    • Lock travis to not use node v15 (#3361)

    Documentation:

    • Fixing simple typo, existant -> existent (#3252)
    • Fixing typos (#3309)

    Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:

    ... (truncated)

    Changelog

    Sourced from axios's changelog.

    0.21.1 (December 21, 2020)

    Fixes and Functionality:

    • Hotfix: Prevent SSRF (#3410)
    • Protocol not parsed when setting proxy config from env vars (#3070)
    • Updating axios in types to be lower case (#2797)
    • Adding a type guard for AxiosError (#2949)

    Internal and Tests:

    • Remove the skipping of the socket http test (#3364)
    • Use different socket for Win32 test (#3375)

    Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:

    0.21.0 (October 23, 2020)

    Fixes and Functionality:

    • Fixing requestHeaders.Authorization (#3287)
    • Fixing node types (#3237)
    • Fixing axios.delete ignores config.data (#3282)
    • Revert "Fixing overwrite Blob/File type as Content-Type in browser. (#1773)" (#3289)
    • Fixing an issue that type 'null' and 'undefined' is not assignable to validateStatus when typescript strict option is enabled (#3200)

    Internal and Tests:

    • Lock travis to not use node v15 (#3361)

    Documentation:

    • Fixing simple typo, existant -> existent (#3252)
    • Fixing typos (#3309)

    Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:

    ... (truncated)

    Commits
    Maintainer changes

    This version was pushed to npm by emilyemorehouse, a new releaser for axios since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Releases(1.5.0)
Owner
Davor Grubelić
Davor Grubelić
Simple Vue.js authentication library

[WARNING]: README file is currently in process of rewrite and will be released soon. vue-authenticate vue-authenticate is easily configurable solution

Davor Grubelić 1.4k Jun 11, 2021
vue-google-api

vue-google-api This project is outdated and no longer maintained, I can't find time to do what should be done here. Really sorry, if someone wants to

Stéphane Souron 37 May 26, 2021
Vue auth plugin with typescript

?? Vue Auth Plugin A simple authentication and authorization library for Vue.js using typescript Inspired in @websanova/vue-auth Pull requests and iss

d0wHc3r 44 Mar 25, 2021
A simple light-weight authentication library for Vue.js

Vue Auth A simple light-weight authentication library for Vue.js Sponsor If you like this plugin please consider sponsoring. GitHub Patreon Demo Check

Rob 2.2k Jun 7, 2021
A VueJS directive for downloading files that are under a protected route schema

?? vue-auth-href A VueJS directive for downloading files that are under a protected route schema (that needs an Authorization Header). It's a common t

Ignacio Durand 15 Mar 25, 2021
Lightweight Vue 3 composition API-compatible store pattern library with built-in undo/redo functionality.

vue-store Lightweight Vue 3 composition API-compatible store pattern library. Offers a simple alternative that is on par with VueX in terms of feature

Korijn van Golen 12 May 16, 2021
A Vuex plugin to persist the store. (Fully Typescript enabled)

vuex-persist A Typescript-ready Vuex plugin that enables you to save the state of your app to a persisted storage like Cookies or localStorage. Info :

Arnav Gupta 1.4k Jun 12, 2021
A very simple but powerful state management for vuejs projects.

Vuez A Simple but Powerful State Management for Vue.js projects. Vuez is a very simple but powerful state management library for Vue.js projects. Vuez

Mark Feng 44 Jul 30, 2020
Simple, unopinionated, lightweight and extensible state management for Vue 3

Simple, unopinionated, lightweight and extensible state management for Vue 3

Andrew Courtice 171 Jun 3, 2021
Vuex plugin for redux-saga

vuex-coolstory Use redux-saga with Vuex. Overview redux-saga is an awesome library that aims to make side effects (i.e. asynchronous things like data

Nikita Lvov 21 May 17, 2021
A util package to use Vuex with Composition API easily.

vuex-composition-helpers A util package to use Vuex with Composition API easily. Installation $ npm install vuex-composition-helpers This library is n

Greenpress 165 May 26, 2021
Store Organizer To Simplify Your Stores

Vue Simple Store Vue Simple Store is a vue plugin which will simplify your App Store. It will combine your separated stores into one global store. let

Naufal Rabbani 66 May 7, 2021
Vuex state synchronization between iframe/window

vuex-iframe-sync English | 中文 Vuex state synchronization between iframe/window Your star is the greatest encouragement to me. ✨ Features: support ifra

Jiahui.Liang 96 May 25, 2021
Use paginated resources in your Vue/Vuex app with ease

vuex-pagination Note: This library only works with Vue 2. For Vue 3, take a look at vue-use-pagination. Library that makes it magnitudes easier to int

cyon GmbH 100 Mar 1, 2021