[wip] generalize oauth process