I create a auth service (src/services/auth.js), with just functions and properties ..
export default {
    login() { ... }
    ...
}
Inside login function, I need to redirect user 
router.go(redirect)
How can I retrieve router instance?
In my src/main.js file, i create a router ..
import VueRouter from 'vue-router'
Vue.use(VueRouter)
import route from './routes'
const router = new VueRouter({
  history: false,
  linkActiveClass: 'active'
})
route(router)
const App = Vue.extend(require('./App.vue'))
In my src/routers.js is just map routes
export default function configRouter (router) {
    router.map({ .. })
}
                You should export the router instance and then import it into the auth.js service.
Here is my workaround with some improvements:
src/routes.js
export default {
  '/': {
    component: {...}
  },
  '/about': {
    component: {...}
  },
  ...
}
src/router.js
import Vue from 'vue'
import VueRouter from 'vue-router'
import Routes from './routes'
Vue.use(VueRouter)
const router = new VueRouter({...})
router.map(Routes)
// export the router instance
export default router
src/main.js
import Router from './router'
import App from './app'
Router.start(App, '#app')
src/services/auth.js
import Router from '../router'
export default {
  login () {
    // redirect
    Router.go('path')
  }
}
                        Is your auth service a Vue component?
If so, you should be able to change routes with:
this.$router.go('/new/route');
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With