reimplemented OAuth login