Router is work in progress, many issues are akowledged.

On Friday, January 8, 2016 at 4:34:32 AM UTC+1, Mark Rathwell wrote:
>
> Thanks, I'll have to do some digging.  Still seems a bit hacky at this 
> point, not to mention, you then need to track _why_ canActivate() was 
> false, as one could certainly have other valid conditions on that, and you 
> would only want to redirect to login if a login is required.  Hopefully it 
> will smooth out in time.
>
> On Thu, Jan 7, 2016 at 4:11 AM, Günter Zöchbauer <[email protected] 
> <javascript:>> wrote:
>
>> I have seen discussions in Gitter or GitHub issues in the Angular repo, 
>> where they do some workarounds to get hold of an injector (using a gloal 
>> variable or something) in `canActivate()` and then request the router and 
>> call `router.navigate...`
>> (if I remember correctly)
>>
>> On Wednesday, January 6, 2016 at 10:59:30 PM UTC+1, Mark Rathwell wrote:
>>>
>>> Where do you do the redirect to the login component here though (when 
>>> canActivate() fails)?  It's obviously a nicer AOP style, but I've never 
>>> seen where people are doing the login redirect with this method.
>>>
>>> On Tue, Jan 5, 2016 at 4:18 AM, Günter Zöchbauer <[email protected]> 
>>> wrote:
>>>
>>>> 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]> 
>>>>> 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.
>>>>
>>>
>>> -- 
>> 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.

Reply via email to