angularjs - Require login per controller/view (Angular JS) -


parts of app require user validation done either automatically (using existing refresh token stored cookie) or manually using login form.

while can implement using service feels rather hackish (the various services designed return data). can't think of better way share capabilities between different controllers.

p.s did check out https://github.com/witoldsz/angular-http-auth catching 401 error , initiating login means make call though can tell fail.

i think can break login process service, can incredibly important store , pass info various controllers in app, , precisely services for.

i have created bug-reporting app using similar link pointed out, customized using service , controller well. these steps followed set up:

  • first, set interceptor catch 401 errors , broadcasts message login required.

  • i set authservice log bad 401 calls. if there bad call, gets stored.

  • i have login controller uses authservice handles form, registration, login, logout, etc etc. controller used in menu on every page, there no chance broadcast event missed. controller listens broadcast event, , when received, displays login form.

  • after successful login, tell authservice repeat stored calls , delete them.

now works great, if refreshes page, authservice deleted, , interceptor have work again, events need broadcast, , pain. overcome did simple check in login controller.

  • first check see if authservice has user object stored.

  • if not, check server, if result user logged in, populate authservice again.

  • if user not logged in, nothing, let authservice know have checked against server , seen user wasn't logged in.

again, in case didn't want force users log in unless trying perform specific actions required login. bug-reporting app, wanted allow anonymous users read content, going post had register or login.

if case involves being logged in 100% of time, can ignore interceptor. set service , controller. if login controller sees authservice isn't populated, redirect login screen. upon refresh, simple check against server ensure still logged in, otherwise redirect login screen.


Comments

Popular posts from this blog

java - Jmockit String final length method mocking Issue -

asp.net - Razor Page Hosted on IIS 6 Fails Every Morning -

c++ - wxwidget compiling on windows command prompt -