Open
Description
- I understand that GitHub issues are not for tech support, but for questions specific to this generator, bug reports, and feature requests.
Item | Version |
---|---|
generator-angular-fullstack | 5.0.0 rc 4 + fix PRs |
Node | 8.10.0 |
npm | 5.7.1 |
Operating System | Windows 10 |
Item | Answer |
---|---|
Transpiler | TypeScript |
Markup | HTML |
CSS | SCSS |
Router | ngRoute |
Client Tests | Mocha |
DB | SQL |
Auth | Y |
A user that has sucesfully logged on will not be detected as logged in if the site is refreshed inside an AuthGuarded route.
Steps to reproduce bug:
- Use generator
- Log in as admin user
- Click on Admin tab on nav bar
- Use browser refresh
Cause:
Router is evaluating the CanActivate function before the constructor has retrevied the user from the Token
AuthGuard triggered
canActivate() {
return this.authService.isLoggedIn();
}
isLoggedIn(callback?) {
let is = !!this.currentUser._id;
//at this time is continues to be undefined
safeCb(callback)(is);
return Promise.resolve(is);
}
AuthGuard Cancels Navigation
This part of the constructor finishes running and get the user too late.
if(localStorage.getItem('id_token')) {
this.UserService.get().toPromise()
.then((user: User) => {
this.currentUser = user;
})
.catch(err => {
console.log(err);
localStorage.removeItem('id_token');
});
}
Click on another authguarded route after this will work. Bug only occurs while refreshing.
Metadata
Metadata
Assignees
Labels
No labels