2016-03-28 17 views
0

AngularJS'de, herhangi bir yolu çalıştırmadan önce kullanıcının oturum açmış olup olmadığını bilmesi gereken tek sayfalık bir uygulama yazıyorum.AngularJS kimlik doğrulama sözü çözülene kadar tüm yolları engeller

Anonim oturumları destekleyen Django arka ucunu kullanıyorum, bu yüzden yalnızca kullanıcı adı veya anonim varsa, anlayamadığım çerezleri arıyorum. Bu yüzden, bunu bulmak için Angular uygulamasında küresel .run()'da bir Ajax isteği yapmak ve bu istek tamamlanana kadar açısal uygulamanın yürütülmesini geciktirmek istiyorum.

Bunu nasıl yaparım?

+1

UI yönlendiricisinde https://github.com/angular-ui/ui-router/wiki#resolve veya http interceptor https://docs.angularjs.org/api/ng/service kullanmanızı öneririm/$ http. –

+0

Gereksiniminiz için, ui yönlendirici çözümünü kullanmalısınız. Ancak, bir http interceptor ile sunucu yanıtını kontrol etmek ve kimlik doğrulama başarısız olduğunda kullanıcıyı yönlendirmek daha iyidir. –

+0

@AbdulMannan Ui-router'ın 'resol'ünü son çare çözümü olarak kullanmayı düşündüm. Ne yazık ki, bu yaklaşımla, tekrarlayan ve hataya açık olan her rotada aynı 'resol' kodunu elle çağırmak zorunda kaldım. '$ Http' engelleyicileri kontrol ediliyor. Öneri için teşekkürler. –

cevap

0

Her bir görünüme koyabileceğiniz bir yönerge oluşturun. Projemiz, tıraş makinesini kullanarak temel bir görünüme sahip olduğundan, daha kolay hale getirmektedir. Direktifin sözünü beklemesine izin verin ve sadece içeriği çözüldüğünde görünür hale getirin.