I think canActivate and Activate router lifecycle methods are the official
way
https://github.com/angular/router/issues/100
On Tuesday, January 5, 2016 at 12:20:12 AM UTC+1, Mark Rathwell wrote:
>
> 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]
> <javascript:>> 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]
>> <javascript:>> 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] <javascript:>.
>>> To post to this group, send email to [email protected]
>>> <javascript:>.
>>> 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.