OAuth typescript