return promise from authenticate method