- Как авторизацию для андроида
- Авторизация через Google в Android и проверка токена на сервере
- Небольшая подготовка
- Добавляем действие на кнопку
- Необходимые области доступа
- Регистрация нашего приложения.
- Код получения токена
- Проверяем токен на сервере. (PHP)
- Как пользователь может выполнить авторизацию в мобильном приложении?
- Опубликовано nord cloud soft в 30/05/2021
- Как пользователь может выполнить авторизацию в мобильном приложении?
- Выбор способа авторизации
- 1. Авторизация по номеру телефона
- 2. Авторизация по номеру телефона и паролю
- 3. Авторизация по номеру телефона/e-mail и паролю
- 4. Авторизация по логину (имени) и паролю
- 5. Авторизация через социальную сеть Facebook и ВК
- 6. Авторизация через Google-аккаунт
- Выбор способа авторизации
Как авторизацию для андроида
В этом уроке мы продолжим увеличивать свои способности в настройке пользовательского интерфейса своих приложений и оборудовать их все более серьезными вещами. На этот раз мы оснастим свое Android приложение функцией входа в приложение по вводу логина и пароля. Это может пригодится для многих приложений, да и просто интересно, как это делается. Все довольно просто, ничего сложного в реализации этой возможности не будет.
Мы сделаем приложение, при запуске которого нужно будет выполнить вход с помощью ввода логина и пароля — если данные введены верно мы попадаем на другой экран, если не правильно, то видим сообщение об ошибке.
Здесь пригодится вспомнить простенький урок о переходе между двумя экранами, этот прием встречался уже неоднократно, поэтому разъяснений по нему делать уже не буду.
Создаем новый проект, выбираем Blank Activity. Для начала создадим пользовательский интерфейс для приложения. Он будет состоять из полей ввода логина/пароля и кнопки для совершения входа. Открываем файл activity_main.xml и добавляем туда следующее:
Мы получили вот такой вид пользовательского интерфейса:
Сразу разберемся со вторым экраном, на который будет совершаться переход в случае успешного ввода логина и пароля. Создаем новый класс по имени Second.java:
И соответствующий ему layout файл по имени second_activity.xml:
Ну а теперь переходим к файлу основному MainActivity.java. Основной процесс будет происходить в методе обработки нажатия кнопки «Войти». В нем мы сравниваем введенные логин и пароль со словом admin и в зависимости от их совпадения или не совпадения настраиваем дальнейшие действия. Если введены логин и пароль admin, то высвечивается Toast сообщение об успехе входа и выполняется переход на второй экран с помощью Intent. Если данные введены не верно, то высвечивается сообщение с ошибкой, а после 3 неудачных попыток появляется надпись, что количество попыток исчерпано, а кнопка «Войти» становится неактивной. Итак, чтобы реализовать сказанное, открываем файл MainActivity.java и добавляем в него следующий код:
Кстати, не забудьте добавить вторую activity в файл манифеста AndroidManifest.xml:
Проверяем работоспособность своего творения:
Вот так, все отлично работает, теперь мы можем сделать свое приложение насколько крутым, что им смогут пользоваться только знающие данные логина и пароля для входа.
Источник
Авторизация через Google в Android и проверка токена на сервере
Недавно мне захотелось создать личный проект на андроиде, и основной вопрос был такой: как однозначно идентифицировать пользователя заставляя его делать как можно меньше телодвижений? Конечно же это аккаунт Google. Я пытался пробовать множество примеров в сети — однако API несколько раз обновилось за время своего существования, многие методы не работали, мои вопросы в Google+ по этому поводу либо были вообще никак не восприняты окружением, либо были вроде «Никогда такое не делал».
В этой статье я постараюсь как можно более просто для новичков (вроде меня) описать мой метод авторизации в Google на андроид, получения токена и проверке этого самого токена на сервере.
Небольшая подготовка
Для начала — у вас должны быть установлены Google Play Services в SDK. После их установки можно будет импортировать все необходимые библиотеки. Статья пишется с расчетом на Android Studio — он сам подсказывает, что необходимо импортировать.
У вас должно быть создано активити с кнопкой.
Чтобы было привычнее пользователю можете создать стандартную кнопку Google+ Sing-In
Выглядеть она будет вот так:
Просто добавьте в ваш Layout:
Добавляем действие на кнопку
Пишем в нашем активити:
Собственно присвоим кнопке действие — вызов интенда выбора аккаунта. Если вы работаете в Android Studio он сам вам подскажет, какие библиотеки нужно импортировать, так что это подробно тут я расписывать не буду.
startActivityForResult(intent, 123); — задает код с которым произойдет возврат. 123 это код возврата, он может быть каким угодно. Это необходимо, когда вы делаете несколько интендов, и вам надо обработать их по разному.
Необходимые области доступа
Обьявите эти переменные в классе. Это необходимые нам области доступа. Первый написано в google: «Позволяет определить аутентифицированного пользователя. Для этого при вызове API необходимо указать me вместо идентификатора пользователя Google+. » Второе разрешение нам необходимо для получения личных данных пользователя (Имя, Фамилия, адрес G+ страницы, аватар), и последнее для получения E-mail. Я посчитал это важным, ведь это вполне неизменный идентификатор для записи в бд.
Регистрация нашего приложения.
Изначально забыл этот пункт — исправляюсь.
Нам необходимо зайти на code.google.com/apis/console создать там проект, зайти в Credentials и создать новый Client ID для OAuth выбрав пункт Installed Application -> Android. Там нам необходимо ввести название нашего пакета и SHA1 сумму нашего ключа.
С этим у меня на самом деле было много проблем решил достаточно костыльным способом.
Нашел debug.keystore в %USERPROFILE%\.android\debug.keystore поместил в папку с проектом и прописал в build.grandle:
После чего нам нужно выполнить команду:
keytool -exportcert -alias androiddebugkey -keystore
/.android/debug.keystore -v -list
Сам keytool можно найти в SDK. Из вывода копируем SHA1 в нужное поле.
Как я понимаю метод временный, и для нормальной работы надо создать нормальный ключ. Но для тестирования этого достаточно.
Код получения токена
Где 123 — ваш код, который вы указали ранее, где AcrivityName — название вашего актитивити. Грубо говоря — мы скармливаем функции получения токена необходимые разрешения и имя аккаунта. И заметьте — это все происходит в фоновом режиме, после чего полученный токен передается в написанную мною функцию reg. Она уже отправляет токен и все необходимые данные на сервер.
Так как разрабатываю недавно, с исключениями пока что беда, если есть предложение — напишите в личку или в комментарии.
Проверяем токен на сервере. (PHP)
Хочу обратить внимание, полученный нами токен имеет тип Online. И действует он лишь 10 минут. Для получения offline токена (чтобы дольше работать с ним с сервера) обратитесь к этой инструкции developers.google.com/accounts/docs/CrossClientAuth
Собственно скармливаем токен в googleapis и забираем полученный JSON ответ.
Источник
Как пользователь может выполнить авторизацию в мобильном приложении?
Опубликовано nord cloud soft в 30/05/2021
Как пользователь может выполнить авторизацию в мобильном приложении?
Выбор способа авторизации
Если нужно хранить данные пользователей, то авторизация в мобильном приложении необходима. Существует несколько вариантов выполнения авторизации.
1. Авторизация по номеру телефона
2. Авторизация по номеру телефона и паролю
3. Авторизация по номеру телефона/e-mail и паролю
4. Авторизация по логину (имени) и паролю
5. Авторизация через социальную сеть Facebook и ВК
6. Авторизация через Google-аккаунт
Разберем существующие варианты авторизации, чтобы было проще выбирать тот метод, который вас устраивает.
1. Авторизация по номеру телефона
При такой авторизации требуется подтвердить номер телефона, вводом кода подтверждения, полученного по SMS. Отдельный экран «Регистрация» не требуется, так как при авторизации сервер сам может определить является ли данный пользователь новым или ранее он уже регистрировался. Если сервер определит пользователя, как нового, то выполняется его регистрация, иначе пользователь авторизуется, как ранее существующий.
Плюсы: простота авторизации, минимум запрашиваемых у пользователя данных, сразу получаете достоверный номер телефон.
Минусы: не подходит для приложений, которые используют миллионы, рассылка SMS требует затрат. По состоянию на 01.04.2021 средняя стоимость SMS 3,5-4 рубля.
Авторизация с применением только номера телефона очень проста, но может быть использована, если количество пользователей приложения не превышает несколько сотен. Лучше если аудитория приложения локализована в рамках одной страны. Например, России. Это связано с необходимостью рассылки SMS. При вводе номера телефона в поле ввода надо создать маску ввода, чтобы исключить добавление лишних символов (например, пробелов) и привести формат вводимых номеров телефонов к одному формату.
Нет необходимости реализовывать процедуру восстановления пароля (сброс пароля), так как пароль не используется.
Смена номера телефона для пользователя не доступна. Сменить номер телефона пользователя может только администратор через Админ панель.
2. Авторизация по номеру телефона и паролю
При авторизации нет необходимости проверять сразу телефон. Проверку достоверности номера телефона легко можно проверить позднее. Например, при возникновении подозрительной активности или при очередной авторизации. При регистрации пароль пользователь вводит сам. Чтобы избежать ошибки при вводе пароля используются два поля ввода, для пароля и для повторного ввода пароля.
Сейчас популярно использовать при регистрации одно поле для ввода пароля, без повторного ввода пароля в отдельном поле, но при этом надо обязательно сразу выполнять подтверждение номера телефона кодом, полученным в виде SMS- сообщения. Если пользователь забудет пароль, то он может выполнить инициализацию сброса пароля и ему на телефон придет SMS-сообщение, содержащие временный пароль.
3. Авторизация по номеру телефона/e-mail и паролю
Facebook и ВК используют авторизацию пользователей по телефона/e-mail и паролю. При регистрации пользователь может указать e-mail и пароль или телефон и пароль. Подтверждение номера телефона/e-mail при регистрации может не проводиться. Очень демократичный способ авторизации, который удобен для мобильных приложений ориентированных на миллионную аудиторию.
В наше время распространяется тренд, когда люди (не занимающиеся бизнесом) не имеют e-mail. Скорее всего это происходит в связи с сильным развитием социальных сетей и мессенджеров.
Восстановление пароля можно выполнить только если пользователь выполнил подтверждение e-mail или номера телефона.
4. Авторизация по логину (имени) и паролю
На некоторых онлайн-сервисах применяют способ авторизации по логину и паролю. Довольно старый способ авторизации, который имеет ряд недостатков, но благодаря своей лояльности к пользователю популярен. Пользователь сам решает, какой логин (имя) ему выбрать. Система не накладывает ограничений на вид логина, выбранного пользователем. Пароль при такой регистрации нужно вводить два раза, так как осложнено восстановление доступа сразу после регистрации из-за того, нет не подтвержденного e-mail, не номера телефона.
Такой способ авторизации подойдет для миллионной аудитории, но он чаще используется для онлайн-сервисов, потеря доступа к которым не является критичным для пользователя. Также такой способ авторизации характерен для мессенджеров, трекеров задач, CRM систем, т.е. для систем в которых интенсивно используется имя пользователя. В процессе использования приложения необходимо предусмотреть возможность получения дополнительной идентификации пользователя, например, e-mail, или телефон, или набора ключевых вопросов, для реализации процедуры восстановления пароля.
5. Авторизация через социальную сеть Facebook и ВК
Дополнительным способом авторизации пользователей может авторизация в мобильном приложении через аккаунт в социальной сети Facebook или ВКонтакте. Для этого пользователю предлагается открыть доступ к своему аккаунту в соответствующей социальной сети, ввести логин и пароль соответствующей сети и тем самым авторизоваться в мобильном приложении.
Данный метод авторизации применяется, как дополнительный, так многие не имеют аккаунтов в социальных сетях.
Минусы авторизации через социальную сеть
- Существенным минусом такой авторизации является то, что у пользователя запрашивается предоставить доступ только, что установленному мобильному приложению к своему личному аккаунту в социальной сети. Это может вызывать желание у пользователя прервать авторизацию.
- Не все люди используют социальные сети.
Плюсы авторизации через социальную сеть
- Для пользователя такая авторизация удобна, так как не требует запоминания еще одного пароля. Нет необходимости реализовывать процедуру восстановления пароля.
- Является хорошим дополнением к основному способу авторизации и подходит для миллионной аудитории мобильного приложения.
- Не требует существенных затрат на рассылку e-mail. В отличие от SMS.
- Пользователь может иметь авторизованный доступ из любой точки мира.
6. Авторизация через Google-аккаунт
В данный момент такой вид авторизации в мобильных приложениях распространяемых в России встречается редко.
Выбор способа авторизации
Для выбора способов авторизации надо ответить на следующие вопросы.
- Какова потенциальная численность будущей аудитории пользователей приложения? Это сотни или миллионы людей?
- Каковы характеристики целевой аудитории приложения (возраст, интересы)?
- Как использует интернет потенциальная целевая аудитория?
- Какая география будущих пользователей мобильного приложения?
Ответив на эти вопросы можно легко выбрать способ авторизации. Если планируется разработка мобильного приложения с «нуля», то лучше сразу спроектировать сервер Админ панели приложения с учетом поддержки выбранных способов авторизации.
Источник