# Authentication
Kamek uses Google's OAuth 2.0 (opens new window) for authentication and ACL (opens new window) service for authorization. It uses OAuth's features through vue-google-oauth2 (opens new window) library, which handles Google sign-in and sign-out for Vue.js applications. User permissions are managed on ACL's platform (opens new window), as explained here (opens new window).
Bellow is the flow for the login process:
sequenceDiagram
participant K as Kamek
participant O as Google OAuth 2.0
participant T as Toad
participant A as ACL
K->>+O: Get authorization code
O->>O: User login
O-->>-K: Authorization code
K->>+T: Login with authorization code
T->>+A: Login with authorization code
A-->>-T: User email, authorization token, refresh token and permissions
T-->>-K: User email, authorization token, refresh token and permissions