Looks like I missed the obvious on this one. You can just subscribe to
route transitions and do the authentication checks and redirections there.
Subscribing in the top-level component constructor works as expected for me:
this.router.subscribe((nextValue) => {
if (nextValue !== 'login' && nextValue !== 'register' &&
!this.sessionService.accessToken()) {
this.sessionService.data['urlRedirectAfterLogin'] = nextValue;
this.router.navigate(['/Login']);
}
});
On Mon, Jan 4, 2016 at 12:10 AM, Mark Rathwell <[email protected]>
wrote:
> I'm interested in this also. I have spent most of the day trying to make
> something work by overriding the router-outlet, but have only come up with
> dirty hacks that sort of work.
>
> There is literally zero information out there on authentication with
> Angular 2 that is still current and valid. It is such a standard and
> critical thing, I must be missing something.
>
> On Tue, Dec 29, 2015 at 5:17 AM, Martin Wawrusch <[email protected]>
> wrote:
>
>> Hi guys, I am trying to set up routing with authentication properly.
>>
>> So far I am using the router's canActivate decorator to determine if that
>> component can be shown or not. The question is: where do I put the redirect
>> to a login page? Doing a hard redirect with window.location within the
>> canActivate check seems to be wrong). Should I override the router-outlet
>> instead, and if so, how?
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "AngularJS" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at https://groups.google.com/group/angular.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
--
You received this message because you are subscribed to the Google Groups
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.