> For the complete documentation index, see [llms.txt](https://bharat-tiwari.gitbook.io/our-tech-journal/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bharat-tiwari.gitbook.io/our-tech-journal/angular-4/route-guards.md).

# Route Guards

Route Guards are essentially Angular services (i.e. classes with @injectable decorator) that you can define and use to control user's access to some routes i.e. to allow or deny a user from navigating to some routes.

A Route Guard Service Class need to implement one of the following 4 interfaces:

|                     |                                                                                                                                                                                |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 1. CanActivate      | To control access to some route                                                                                                                                                |
| 2. CanActivateChild | To control access to children of a route                                                                                                                                       |
| 3. CanLoad          | to control loading of some lazy-loaded module                                                                                                                                  |
| 4. CanDeactivate    | to control if user can leave a route. This can be used to prevent user from accidentally moving to some other part of the app without saving changes in the current view/page. |

How to implement Route Guards - <https://alligator.io/angular/route-guards/>
