add signin page, handle failed signin