Angular Routing Security
Angular Routing Security
Angular Routing Security
2
1 valida user / password
user / password
genera token__
token
3
5
4
request (header: token) valida token__
response data
6
Diseño de la aplicación
AppAngular
Pages (routes)
/login
Login Home Users UserEdit Error
/me
/users
/users/:id
...
¿Cómo puedo autenticar a un usuario y definir sus
datos?
- Almacenamiento de token
- Presencia de usuario en la aplicación
AppAngular
Pages (routes)
/login
Login Home Users UserEdit Error
/me
/users
/users/:id
Services ...
auth
initCurrentUser( token )
logout()
{
currentUser { token
id, name, email, roles...
}
}
¿Cómo puedo enviar el token de manera
automática en las llamadas http?
HTTP_INTERCEPTOR
Pages (routes)
/login
Login Home Users UserEdit Error
/me
/users
/users/:id
Services ...
auth
initCurrentUser( token )
logout()
{
currentUser { token
id, name, email, roles...
}
}
¿Cómo puedo hacer que el usuario esté presente
cuando vuelva a abrir la aplicación?
HTTP_INTERCEPTOR
Pages (routes)
APP_INITIALIZER
/login
Login Home Users UserEdit Error
/me
/users
/users/:id
Services ...
auth
initCurrentUser( token )
logout()
{
currentUser { token
id, name, email, roles...
}
}
¿Cómo puedo denegar el acceso a cierta páginas
según el rol del usuario?
HTTP_INTERCEPTOR
Pages (routes)
APP_INITIALIZER
/login
Login Home Users UserEdit Error
/me
canActivate canActivate canActivate
- admin - admin - admin
- user - user /users
/users/:id
Services ...
authGuard
auth
initCurrentUser( token )
logout()
{
currentUser { token
id, name, email, roles...
}
}
¿Cómo puede refrescar un token caducado de
manera transparente al usuario?
HTTP_INTERCEPTOR
Pages (routes)
APP_INITIALIZER
/login
Login Home Users UserEdit Error
/me
canActivate canActivate canActivate
- admin - admin - admin
- user - user /users
/users/:id
Services ...
authGuard
auth
initCurrentUser( token )
logout()
refreshToken( refreshToken )
{
currentUser { token,
id, name, email, roles...
refreshToken
}
}
¿Algo más?