Create wrapper methods for oauth flow to prevent users directly accessing client and to make code cleaner in applications.
Merge remote-tracking branch 'upstream/improve-oauth-flow'