add twitter authentication
refactor google authentication
refactor OAuth2 middleware