UserUserClientClientSocial Auth ServerSocial Auth ServerSocial Resource ServerSocial Resource ServerInternal Auth ServerInternal Auth ServerInternal Resource ServerInternal Resource ServerRegistrationAuthorization Code RequestLogin & ConsentAuthorization Code ResponseExchange Code for Access TokenAccess Token [+ Refresh Token]Call API with Access TokenValidate Access TokenValid Access Token ResponseResponse with User DataThis data is used to create/identify an internal accountCreate User [if not exists]Confirm UserConsume ServiceAuthorization Code RequestRequested Using Social Access TokenValidate Access TokenValid Access Token ResponseGet data (like username)Return user dataAuthorization Code ResponseExchange Code for Access TokenAccess Token [+ Refresh Token]loop[Internal microservice calls]Call API with Access TokenValidate Access TokenValidate Access TokenResponse with Data