User ----(click login)----> Server ----(redirect to Google with client_id, scope, and redirect_uri)----> Google
User <----(request for permissions)---- Google
User ----(grant permissions)----> Google ----(redirect to Server with code)----> Server
Server ----(exchange code for access token using client_secret)----> Google
Server <----(access token)---- Google
Server ----(request user info using access token)----> Google
Server <----(user info)---- Google
Server ----(redirect to application)----> User
User ----(click login)----> Server ----(redirect to Google with client_id, scope, and redirect_uri)----> Google User <----(request for permissions)---- Google User ----(grant permissions)----> Google ----(redirect to Server with code)----> Server Server ----(exchange code for access token using client_secret)----> Google Server <----(access token)---- Google Server ----(request user info using access token)----> Google Server <----(user info)---- Google Server ----(redirect to application)----> User