¿Cómo redirigir a una url diferente dentro del enrutador vue antes de enrutar?

Estoy creando una página de administración con Vue.js 2 y quiero evitar que usuarios no autenticados accedan a/admin ruta y redirigirlos a/login. Para eso he usado el protector de componentesbeforeRouteEnter en el componente Admin como sigue

...
beforeRouteEnter(to, from, next) {
  if(userNotLogedIn) {
    this.$router.push('/login');
  }
}

El problema aquí es quethis no está definido enbeforeRouteEnter gancho. Entonces, ¿cuál es la forma correcta de acceder$router y redirigir a una url diferente en este caso?

Respuestas a la pregunta(1)

Su respuesta a la pregunta