Как реализовать аутентификацию OAuth 2.0 как аутентификацию на токенах для API доступа, доступ к которой осуществляется из мобильных и javascript веб-приложений

Мне нужен механизм аутентификации и авторизации для моего REST API. Это доступ к отдыху, доступ к которому осуществляется из мобильного приложения и веб-приложения.

Механизм, который я хотел бы реализовать:
Так, по моему пониманию, я использую аутентификацию на основе пароля. Мобильное приложение или веб-приложение javascript отправляют имя пользователя и пароль по запросу HTTPS для получения доступа к токену в течение ограниченного времени.

проблема

  1. Поскольку токен доступа истекает через 1 час или около того. Конечный пользователь снова попросит ввести имя пользователя и пароль. Это неприемлемо.
  2. Если мы увеличим время токена на более длительный период, то, если кто-то получит дескриптор маркера, он может получить доступ к Rest API еще на время. Поскольку веб-приложение является javascript-приложением, оно легко доступно в тексте плана.

Поэтому я пытаюсь понять, как приложения, подобные facebook и twitter, реализуют авторизацию для своих родных мобильных приложений. Они запоминают токен доступа навсегда, сохраняя в локальном хранилище. Так что, если какое-либо вредоносное приложение имеет root-доступ к телефону Android, вы можете получить доступ к токенам.

Каковы улучшения вышеописанного механизма, чтобы он работал как для автономного веб-приложения, разработанного в приложениях javascript и android?

Точки доступа действительно предназначены для короткого замыкания. Чтобы поддерживать авторизацию в течение длительного периода времени, OAuth2 имеет что-то, называемое «обновлять токены».

Если поставщик поддерживает это (и как Google, так и Facebook), потребитель OAuth2 может запросить токен обновления в дополнение к токену доступа во время начального потока (Google считает, что «автономный доступ» я считаю). Маркер доступа используется обычно, но когда он истекает, потребитель может запросить новый токен доступа, используя свои учетные данные и токен обновления.

Дополнительную информацию см. В документе Google: https://developers.google.com/accounts/docs/OAuth2WebServer#offline .

Intereting Posts
Java / android как запустить AsyncTask после 3 секунд задержки? Как создать пользовательскую панель прогресса в Android? Как вызвать onListItemClick в ListFragment Как получить индекс первой / последней видимой группы в ExpandableListView? Android – Как установить изображение обоев? Изменить progressdialog background Мое приложение не будет отображаться в диалоговом окне выбора для android.intent.action.VIEW с типом видео / * только на Marshmallow Перемещение MapFragment (SurfaceView) вызывает мерцание черного фона ConnectivityManager.requestNetwork в Android 6.0 В android Gear Vr, возможно ли запустить приложение в обычном режиме, а затем перевести его на Unity / VR, когда пользователь нажмет эту опцию? Поддержка Android-v7 CardView: текстовое изображение заголовка с другим цветом фона не распространяется до тех пор, пока края Как установить другой фон ключей для пользовательской клавиатуры Android PreferenceFragment отображается прозрачно Как отключить собственное приложение facebook для входа в систему Как я могу получить пункт меню в NavigationView?