Üzerinde çalıştığım uygulama çeşitli durumlar (ui-yönlendirici kullanarak) içeriyor, burada bazı durumlar oturum açmanızı gerektiriyor, diğerleri herkese açık.
Bir kullanıcının giriş yapıp yapmadığını geçerli bir şekilde kontrol eden bir yöntem oluşturdum, şu anda sorun yaşıyorum aslında gerektiğinde giriş sayfamıza yönlendiriliyor. Oturum açma sayfasının şu anda AngularJS uygulamasına yerleştirilmediğine dikkat edilmelidir.
app.run(function ($rootScope, $location, $window) {
$rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) {
if (toState.data.loginReq && !$rootScope.me.loggedIn) {
var landingUrl = $window.location.host + "/login";
console.log(landingUrl);
$window.open(landingUrl, "_self");
}
});
});
Console.log, amaçlanan url'yi doğru bir şekilde gösterir. Bundan sonraki satır, $ window.open'dan window.location.href'e kadar neredeyse her şeyi denedim ve ne denersem deneyeyim yeniden yönlendirme olmuyor.
DÜZENLEME (ÇÖZÜLDÜ):
Sorunu buldum.
var landingUrl = $window.location.host + "/login";
$window.open(landingUrl, "_self");
LandingUrl değişkeni, $ window.location.href ile çalışmayan 'domain.com/login' olarak ayarlandı (denediğim şeylerden biriydi). Ancak kodu şu şekilde değiştirdikten sonra
var landingUrl = "http://" + $window.location.host + "/login";
$window.location.href = landingUrl;
şimdi çalışıyor.