Benim uygulamamda, bazı rotalar sadece kimliği doğrulanmış kullanıcılar için erişilebilir.
Kimliği doğrulanmamış bir kullanıcı, oturum açması gereken bir bağlantıyı tıkladığında, oturum açma bileşenine yönlendirilir.
Kullanıcı başarıyla oturum açtığında, oturumunu açmadan önce istediği URL'ye yönlendirmek istiyorum. Ancak, , kullanıcının giriş yapmadan önce başka bir URL istememesi durumunda da varsayılan rotası olmalıdır.
Bunu vue-router kullanarak nasıl yapabilirim?
Vue-Router kullanarak giriş yaptıktan sonra istenen sayfaya yönlendirin
giriş yaptıktan sonra yönlendirme olmadan Kodum
router.beforeEach(
(to, from, next) => {
if(to.matched.some(record => record.meta.forVisitors)) {
next()
} else if(to.matched.some(record => record.meta.forAuth)) {
if(!Vue.auth.isAuthenticated()) {
next({
path: '/login'
// Redirect to original path if specified
})
} else {
next()
}
} else {
next()
}
}
)
benim giriş bileşeninde My giriş fonksiyonu
login() {
var data = {
client_id: 2,
client_secret: '**************',
grant_type: 'password',
username: this.email,
password: this.password
}
// send data
this.$http.post('oauth/token', data)
.then(response => {
// authenticate the user
this.$auth.setToken(response.body.access_token,
response.body.expires_in + Date.now())
// redirect to route after successful login
this.$router.push('/')
})
Ben her türlü çok memnun olurum
yardım et!
Sonraki ({yol: '/ login? From =' + to.path}) 'gibi bir şey yapabilir ve sonra 'from' sorgu parametresi ayarlanmışsa ve bir yönlendirmeyi –
@ yapıyorsanız giriş sayfanızı kontrol edebilirsiniz. FlorianHaider Bu harika bir çözüm gibi geliyor! Sorgu paramın giriş bileşenimden ayarlanmış olup olmadığını nasıl kontrol edebilirim? – Schwesi
@Schwesi 'this. $ Route.query.from' kullanarak sorgu parametrelerini alırsınız. Mevcut bir sorgu yoksa boş bir nesne alırsınız –