У меня на нескольких проектах сам сайт предоставляет приложению OAuth2:
1) Приложение открывает в браузере страницу /OAuth2/authorize?response_type=token&client_id=client_id&redirect_uri=redirect_uri&state=state
То есть у каждого приложения свой client_id, а в redirect_uri указывается website://website.com
2) На сайте пользователь каким-то образом входит (логин+пароль, опять таки OAuth2 через Facebook, vk.com, и т.д.)
3) Сайт после входа (либо сразу если пользователь уже авторизирован) редиректит обратно на redirect_uri#access_token=access_token&expires_in=expires_in&user_id=user_id&token_type=bearer&state=state
4) Приложение ловит переход на website://website.com (website:// это кастомный протокол, приложение может зарегистрироваться в ОС на его обработку) и парсит то, что приходит после #
Вот такая схема успешно работает, но нужно побеспокоиться об мобильной версии страницы входа в таком случае.
Вообще-то то всё по стандарту, можете почитать RFC, там весьма детально и достаточно четко описано всё это.