Kullanıcı, tarayıcı sekmesindeki rotayı manuel olarak değiştirdiğinde ve presler girildiğinde oluşan bir sorunla karşılaşıyorum. Bu, ui yönlendiricimi/angular2 yönlendiriciyi kullanıcı tarafından girilen duruma gitmeye zorlar. Bunu engellemek ve sadece web sitemdeki buton tıklamaları ile uyguladığım akış üzerinden yönlendirmeye izin vermek istiyorum.Kullanıcı, tarayıcı sekmesinde kullanıcı URL'sini el ile değiştirdiğinde açılı olarak yönlendirmeyi engelle
cevap
Onun 2018! Açısal 5 burada ve bu sorunun çözümü de var. BAMM CanActivate Arabirim, bir sinyalin, bir rotanın etkinleştirilip etkinleştirilemeyeceğine karar vermek için uygulanabileceği arabirimdir.
Bu işlevselliği ekleyebilir ve tanımladığımız koşullara bağlı olarak bazı rotalarımıza erişilmesini engelleyebiliriz. Rota konfigürasyonuna CanActivate arayüzünü uygulayan ve canActivate metodunu tanımlayan AuthGuard için bir servis eklenebilir. İşte
const appRoutes: Routes = [
{ path: 'crisis-center', component: CrisisListComponent },
{
path: 'heroes',
canActivate: [AuthGuard],
component: HeroListComponent,
data: { title: 'Heroes List' }
},
{ path: '',
redirectTo: '/heroes',
pathMatch: 'full'
},
{ path: '**', component: PageNotFoundComponent }
];
rota heroes
ve tüm çocukların gurad katmanı vardır: biz bazı duruma karşı erişimi korumak isteyen bir rota varsa aşağıdaki gibi
class Permissions {
canGoToRoute(user: UserToken, id: string): boolean {
return true;
}
}
@Injectable()
class AuthGuard implements CanActivate {
constructor(private permissions: Permissions, private currentUser: UserToken) {}
canActivate(
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot
): Observable<boolean>|Promise<boolean>|boolean {
return this.permissions.canGoToRoute(this.currentUser, route.params.id);
}
}
, biz nöbet eklemek bitir. Dolayısıyla, AuthGuard servisi tarafından döndürülen boolean değerine dayanarak, kullanıcıya bu rotaya erişime izin verilir veya erişim reddedilir. Bazı kirli yol kullanmadan
Bu kodu app.js. olarak yazın.
.run(['$rootScope', '$state', '$stateParams','LoginStatusService',function($rootScope, $state, $stateParams,LoginStatusService) {
$rootScope.$state = $state;
$rootScope.$stateParams = $stateParams;
$rootScope.$on('$stateChangeSuccess', function(event, toState) {
//Write Routes login here
if(LoginStatusService.getUserStatus()===false){
$state.go('core.login');
}
});
}])
$stateChangeStart
olay bu işlemek için uygun bir yerdir. Bu olay, URL
'a gitmeye çalıştığınızda tetiklenir. Bu noktada, kullanıcının kimliğinin doğrulanıp doğrulanmadığını kontrol edip, yapamayacağınızı geri çekebilirsiniz.
Böyle olayı kanca olacaktır:
angular
.module('myApp')
.run(function ($rootScope, $state, authFactory) {
$rootScope.$on('$stateChangeStart', function() {
//if user is not logged in
if(!authFactory.isAuthed()){
$state.go('login')
}
})
});
yardımcı olur Umut.
Çözümünüz için teşekkürler, ancak kullanıcının kimliği doğrulandı, yalnızca URL'leri manuel olarak değiştirerek durumlarına erişmesini engellemek istiyorum. Bu sayede sırayla önceki ekrandan veri alması gereken bir duruma ulaşabilir, ancak ani yönlendirme nedeniyle boş olacaktır. –
- 1. Eclipse Eklentisi - kullanıcı perspektiften pencereyi değiştirdiğinde çalıştır
- 2. Kullanıcı sistem kültürünü değiştirdiğinde olay nasıl alınır
- 3. Yay Güvenliği: Kimlik doğrulaması kullanıcı el ile
- 4. Asp.net Core'da kullanıcı Tarayıcı adı (kullanıcı aracı) nasıl edinilir?
- 5. Açılı olarak filtrelenmiş sekme
- 6. Anonim Kullanıcı Kimliği ile Kaydı Kullanıcı Kimliği
- 7. Devise ile kullanıcı manuel olarak nasıl oluşturulur
- 8. Tarayıcı açık sekmesinde ADF ile javascript kodu nasıl enjekte edilir?
- 9. ASP.net kullanıcı olarak rol
- 10. kullanıcı
- 11. Wicket: kullanıcı tarafından onaylanana kadar çerez kullanımını engelle
- 12. Kullanıcı formunu
- 13. Açılı
- 14. Kullanıcı ve kullanıcı grubu
- 15. Kullanıcı
- 16. , kullanıcı
- 17. Kök olmayan bir kullanıcı olarak nasıl "kullanıcı oluştur" veririm?
- 18. jenkins slave kullanıcı olarak çalışır
- 19. Açılı
- 20. Yönlendiriciye dinamik olarak yeniden yönlendirmeyi nasıl ekleyebilirim?
- 21. Bir iframe'de # ankrajın tarayıcı penceresini kaydırmasını engelle
- 22. Kullanıcı
- 23. Kullanıcı
- 24. Kullanıcı
- 25. Kullanıcı girişi yaptıktan sonra kullanıcı isteğine erişim yeniden yönlendiriliyor mu?
- 26. Okunmamış mesajlar ilet, kullanıcı olarak
- 27. kullanıcı formu göndermeden sonra kullanıcı
- 28. proxy'nin kullanıcı-kullanıcı hatası hatası
- 29. Redmine kullanıcı depo kullanıcı ile bağlantı nasıl yapılır
- 30. Kullanıcı türleri ile jquery kullanıcı arayüzünü oluşturmanın en iyi yolu
mümkün değildir. –
lütfen öneriniz. –
Bu oldukça mümkündür, lütfen https://github.com/angular-ui/ui-router/wiki adresinden gidiniz .. Navigasyon ve yazmada bir değişiklik olduğunda, her zaman açısal yangının olduğu $ stateChnageStart olayını dinlemeniz gerek gezinmeyi bırakmak için bazı mantık. – immirza