Код авторизации для андроид

Содержание
  1. Код авторизации для андроид
  2. Авторизация через Google в Android и проверка токена на сервере
  3. Небольшая подготовка
  4. Добавляем действие на кнопку
  5. Необходимые области доступа
  6. Регистрация нашего приложения.
  7. Код получения токена
  8. Проверяем токен на сервере. (PHP)
  9. Android для чайников №10. Двухэтапная аутентификация
  10. Павел Крижепольский
  11. Введение
  12. Что это такое?
  13. Как подключить?
  14. Итоги
  15. Читайте также
  16. Пятничная колонка
  17. Когда покупать смартфон?
  18. Посиделки по вторникам
  19. Переход на 2 нм и тонкости техпроцесса
  20. Переход на 2 нм и тонкости техпроцесса
  21. Новостной дайджест
  22. Двойной дисплей
  23. На правах оффтопа
  24. На правах оффтопа. телевидение или интернет
  25. Беседка
  26. Что такое работа и совещания по-илонмасковски?
  27. Что такое работа и совещания по-илонмасковски?
  28. iOS vs Android
  29. Анатомия подделки. airpods 2
  30. РоботоСофт
  31. 10 приложений для android 10
  32. Аксессуары
  33. Зачем сдэк требует паспорт?
  34. 21 комментарий на «“Android для чайников №10. Двухэтапная аутентификация”»

Код авторизации для андроид

В этом уроке мы продолжим увеличивать свои способности в настройке пользовательского интерфейса своих приложений и оборудовать их все более серьезными вещами. На этот раз мы оснастим свое 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 ответ.

Источник

Android для чайников №10. Двухэтапная аутентификация

Павел Крижепольский

Любой владелец Android смартфона в той или иной мере пользуется сервисами Google. Например, доступом в магазин приложений Google Play. Или синхронизацией телефонной книги. Причем, для доступа ко всем сервисам Google используется всего один аккаунт, что очень удобно. Вот только если злоумышленнику удастся подобрать к этому аккаунту пароль, то он получит доступ к очень большому количеству личной и весьма важной информации. В этой статье мы поговорим о том, как можно защитить свой Google аккаунт.

Введение

Последнее время базы с паролями от почтовых сервисов стали попадать в сеть с завидной регулярностью. 5 сентября в сеть «утекло» более миллиона паролей пользователей почты Yandex. 8 сентября – около 4,5 млн аккаунтов Mail.ru. Не успели стихнуть шутки про «Интернет-АвтоВАЗ» и «Яндекс, в котором найдется все», как к ним добавилось почти 5 миллионов логинов и паролей от учетных записей почтового сервиса Gmail.

Все компании поспешили заверить пользователей, что большая часть украденных паролей уже не действительна. И, по большей части, они относятся к удаленным или ранее скомпрометированным аккаунтам. Но так это или нет доподлинно неизвестно.

Отдельно стоит отметить, что имея логин и пароль от чужой почты в Gmail, злоумышленник заодно получает доступ и ко многим другим сервисам. Например, к файлам в Google Drive, покупкам в Google Play, чату Hangouts, телефонной книге, аккаунтам в Google Plus и YouTube и многому другому. Кроме того, пользователи Android часто используют аккаунт Google для авторизации в сторонних сервисах и программах, доступ к которым также будет потерян.

Читая новости о взломанных аккаунтах и «утекших» паролях, большинство людей в глубине души абсолютно уверенно, что с ними всего этого никогда не случится. Но на практике, от кражи пароля или попытки взлома не застрахован никто. И нервов все это может попортить очень изрядно.

К счастью, проблема взлома пароля имеет простое и изящное решение. Называется оно «Двухэтапная аутентификация».

Что это такое?

Сложного названия боятся не стоит, ведь на самом деле, речь идет об очень простой системе, которой уже давно пользуются многие ресурсы, от банков до социальных сетей. Суть заключается в том, что помимо логина и пароля для входа в аккаунт теперь потребуется ввести специальный код, который придет на мобильный телефон по SMS. Даже если злоумышленник каким-то образом узнает ваш пароль, то добраться до телефона он в любом случае не сможет. И, не сумев узнать код подтверждения, останется ни с чем.

Если говорить о безопасности, то никаких вопросов такая схема не вызывает. Дополнительный уровень защиты действительно способен уберечь от многих неприятностей. Но что насчет удобства работы? Мало кому понравится для проверки почты каждый раз ждать SMS сообщения и вручную вводить длинный код.

К счастью, это вовсе необязательно. При входе в аккаунт вы можете отметить компьютер как надежный. И повторно вводить на нем код подтверждения больше не потребуется. При этом, ваш аккаунт по-прежнему будете под защитой – при попытке входа с незнакомого компьютера, система вновь потребует ввести код.

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

Как подключить?

Подключение двухэтапной аутентификации займет у вас буквально пару минут. Все что для этого требуется – перейти по следующей ссылке и следовать указаниям.

От вас потребуется войти в свой Google аккаунт, ввести номер мобильного телефона, выбрать удобный способ получения кодов (это может быть как SMS, так и голосовой вызов) и ввести полученный код подтверждения.

После того, как двухэтапная аутентификация подключена, нужно будет заново войти в Google аккаунт на всех компьютерах и мобильных устройствах, где он у вас используется. Обратите внимание на значок с восклицательным знаком, появившейся в панели уведомлений смартфона. Он говорит о том, что связь с аккаунтом Google потеряна. Потяните шторку строки уведомлений вниз, нажмите на появившееся сообщение, заново введите пароль к Google аккаунту и нажмите «Войти». Дождитесь SMS сообщения, введите секретный код и не забудьте поставить галочку «Запомнить код на этом компьютере» — это избавит вас от необходимости повторно вводить эти данные после перезагрузки устройства.

Читайте также:  Редактор хромакей для андроид

При необходимости, аналогичную процедуру нужно будет проделать на том компьютере, где вам потребуется доступ к сервисам Google. Только помните, что ставить галочку «Запомнить код на этом компьютере» следует только в том случае, если его владельцу вы действительно доверяете.

Главный подводный камень двухэтапной аутентификации – подключение аккаунта Google к некоторым сторонним почтовым клиентам, вроде Microsoft Outlook, почтового клиента на смартфонах BlackBerry или компьютере iMac. К сожалению, они поддерживают только имя пользователя и пароль и не работают с кодами подтверждения. Поэтому, вместо кода для таких приложений будет использоваться специальный пароль.

Создавать такой пароль совсем не сложно, нужно только перейти по следующей ссылке и указать название сервиса (почта, календарь и пр.) и тип клиента. Пароли приложений генерируются автоматически, запоминать их не придется.

На этой же странице можно отредактировать список доверенных устройств или изменить номер телефона.



Итоги

Пользоваться дополнительной защитой или нет – решить исключительно вам. Но, на мой личный взгляд, двухэтапная аутентификация — это нужное и полезное дело. Если есть возможность, всегда привязывайте к своему номеру телефона аккаунты платежных сервисов, почты и социальных сетей. Лучше пусть эти предосторожности окажутся лишними, чем однажды злоумышленник от вашего же имени обманет ваших друзей и близких. Например, отправив с вашего адреса электронной почты сообщение с просьбой срочно перевести деньги на счет.

Читайте также

Пятничная колонка

Когда покупать смартфон?

Посиделки по вторникам

Переход на 2 нм и тонкости техпроцесса

Переход на 2 нм и тонкости техпроцесса

Новостной дайджест

Двойной дисплей

На правах оффтопа

На правах оффтопа. телевидение или интернет

Беседка

Что такое работа и совещания по-илонмасковски?

Что такое работа и совещания по-илонмасковски?

iOS vs Android

Анатомия подделки. airpods 2

РоботоСофт

10 приложений для android 10

Аксессуары

Зачем сдэк требует паспорт?

21 комментарий на «“Android для чайников №10. Двухэтапная аутентификация”»

хорошая статья. я правда этого не делал, но гугл иногда сам вдруг требовал чегот подобного и ещё спрашивал на какой номер прислать смс/хз

Неплохо было бы, наверное, добавить ссылку на конкурсную статью «Dreamer…»а (вроде) по той же теме.

По сабжу: да, так оно, может, и надёжнее, но меня уже бесит то, с каким остервенением куча сервисов начало требовать мой номер телефона. Не их собачье дело, какой у меня номер и как я буду защищать свой аккаунт.

У меня однажды взломали скайп и это было очень неприятно. Всем друзьям и коллегам кто был на тот момент онлайн ушло сообщения типа «у меня большие проблемы, если есть возможность, пожалуйста, одолжи 2к до понедельника». Кто-то уже начал переспрашивать что случилось и куда лучше перевести деньги… К счастью, среди всех прочих сообщение ушло еще и брату, с которым я разговаривал за пять минут до этого. И он сразу перезвонил.

С тех предпочитаю перестраховаться. Лишним не будет.

Да я не против двухфакторной авторизации, я против насильственного насаживания на неё и вызнавания весьма личной информации.

С моей точки зрения это такое же насильственное насаживание, как и требование подбирать пароль длинной не менее 6-ти символов. Хотя казалось бы, кому какое дело, какой пароль я использую для входа в интернет-банк? Если решил поставить 123, то это мое личное дело…

Увы, большая часть пользователей в своих косяках будет винить кого угодно, но только не себя самого. Сервис не надежный, защита плохая, данные аккаунтов подпольно продают, АНБ личную информацию сливают… Людей которые понимают риски и принимают решение взвешенно меньшинство. Остальные не хотят задумываться даже о самых элементарных вещах и откровенно не готовы отвечать за последствия своих поступков.

>Остальные не хотят задумываться даже о самых элементарных вещах и откровенно не готовы отвечать за последствия своих поступков. Великий кукурузо :

>Остальные не хотят задумываться даже о самых элементарных вещах и откровенно не готовы отвечать за последствия своих поступков. TimeS :

12345678 не поставят — сейчас практически везде требуется хотя бы одна заглавная буква и цифра. При этом сервис обычно следит за тем, что бы в пароле не оказалось более трех символов, идущих на клавиатуре в ряд =)

Хотим мы того или нет, но сейчас является нормой писать в инструкциях к микроволновке, что в ней нельзя сушить котов. В какой-то мере это правильно — когда я впервые подключаю интернет и завожу себе почтовый аккаунт, я не обязан вникать в способы взлома паролей, собирать статистику о кол-ве взломанных аккаунтов и вообще разбираться в том, что значит «надежный» и «ненадежный» пароль. Это задача сервиса объяснить мне, как именно им следует пользоваться и какие могут быть подводные камни.

Например, той же почтой сейчас пользуется куча пожилых людей, для которых все эти тонкости совершенно не очевидны. И если мы с тобой ради безопасности кучи пользователей должны потерпеть десяток секунд, придумывая подходящий под правила пароль, то это не самая большая жертва.

«я не обязан вникать в что такое электрический ток» было последними словами маленького Василия Лоханкина, перед тем, как он взялся за оголённые провода в электрощитке.

Если человек пытается что-то сделать, не понимая даже самых основ, то он дурак и истинный ССЗБ, который заслуживает всех тех синяков, которые ему достанутся, ведь тогда он может хоть чему-то научиться. Поэтому вы как раз таки ОБЯЗАНЫ разбираться в том что такое «надёжный» и «ненадёжный» пароль, если решили работать с сервисом, требующим авторизации.

Читайте также:  Tomtom navigation для android

Нас с детства заставляют разбираться в том, что такое нож и как им пользоваться, почему не стоит хватиться за оголённые провода и ещё огромной куче бытовых мелочей. Компьютерысмартфоны ныне стали устройствами, которые есть в практически каждой семье и, по идее, детей можно так же с детства учить основам работы с ними, как и использованию холодильника.

Но тут людей повели по другому пути. Везде насаживается девиз «ты не обязан разбираться» в связке с приучением к бездумному выполнению указаний, прикрываемых «заботой». Через некоторое время всякие гуглоэпплы будут вертеть нас на своих сервисах как вздумается, а основная масса людей будут этому только рады.

Что такое нож известно уже несколько тысяч лет. И детям с годовалого возраста объясняют что это такое и с какой стороны его не стоит хватать. А вот домашние компьютеры, смартфоны и интернет вошли в нашу жизнь совсем не давно. И развиваются они с такой скоростью, что поспеть за ними многим людям уже не по плечу. Увы, с возрастом учится чему-то принципиально новому совсем не просто. А найти старых однокурсников в «Одноклассниках» или позвонить родственникам по скайпу тем не менее хочется. То о чем ты говоришь — это попытка запретить пенсии, на том основании, что умный человек сам должен откладывать деньги на старость, а с глупым возится и смысла нет.

К слову, недавно перечитывал Харуки Мураками. Так вот, в одной из его книг герою на полном серьезе рассказывают о том, что пароль из трех знаком взломать практически нереально. Ведь они в сумме дают огромное количество комбинаций. И, скорее всего, на тот момент это было действительно так. Ведь под «взломом пароля» тогда имели ввиду, что человек получит физический доступ к компьютеру и, когда хозяин отвернется, попробует быстренько угадать нужную комбинацию. Это я к тому, что технически навыки, вроде бы даже успешно привитые в детстве, устаревают с огромной скоростью.

Есть у этой истории и другой аспект. Тот же Google вполне сознательно всеми силами пересаживает пользователей на свои сервисы. Например, привязывает к G+ аккаунты Google Play и YouTube. Или запихивает в Android смартфоны синхронизацию всех контактов с почтой Gmail. Не говоря уже о рекламе, в которой доказывается необходимость и безопасность их продуктов. Причем, думает в этот момент он не столько об интересах пользователей, сколько о своей выгоде. И чисто с моральной точки зрения, компания обязана позаботится о том, чтобы все эти нововведения не навредили пользователю. Не зависимо от того, сколько этому пользователю лет и какой у него уровень интеллекта.

>Что такое нож известно уже несколько тысяч лет.
Пароли, шифры, понятия о личной информации и секретности тоже существуют тысячи лет. Вообще большинство понятий, используемых в компьютерах нам давным давно знакомо, просто метод взаимодействия немного другой, но этому и обезьяну можно выучить. Там не так уж и много принципиально нового, да и проблема про «развитие» слишком уж надумана — немного меняется форма взаимодействия, иногда что-то удаляется, а что-то пропадает, но базовые принципы одни и те же. Причём понятия типа «ключа» (пароля) относятся далеко не только к вычислительной технике.
А про пенсии согласен — ИМХО это вообще глобальный развод на деньги . Ну или хотя-бы делать как в японии, где пенсия выдаётся целиком и сразу, а дальше своим умом. Но это мы уже в совсем оффтоп ушли.

При всём уважении к Мураками, специалист по информационной безопасности из него такой же как из меня английская королева.
>Ведь под «взломом пароля» тогда имели ввиду, что человек получит физический доступ к компьютеру и, когда хозяин отвернется, попробует быстренько угадать нужную комбинацию. Это я к тому, что технически навыки, вроде бы даже успешно привитые в детстве, устаревают с огромной скоростью.И чисто с моральной точки зрения, компания обязана позаботится о том, чтобы все эти нововведения не навредили пользователю. TimeS :

Я могу сказать только одно — все теоретические рассуждения хороши только до той поры, пока ты не сталкиваешься с их последствиями на практике. И если лишнее напоминание о надежности пароля или о возможности привязать аккаунт к номеру телефона однажды спасет твою девушку или твоих родителей от потери личной информации или развода на деньги — ты скажешь компании большое спасибо. Пусть даже и будешь понимать, что в том, что родители придумали для скайпа слишком простой пароль, не виноват никто кроме них. И заботится о сохранности их аккаунты никто кроме них был совершенно не обязан.

Если рассуждать о том, что люди в 21-м веке стали слишком ленивые и тупые (кроме меня любимого, само собой) я еще готов, то навешивать эти ярлыки на окружающих меня людей мне уже совершенно не хочется. А то, что среди них найдется масса тех, кто вряд ли бы в каждом пароле использовал ту самую обязательную заглавную букву с той самой обязательной цифрой, я ничуть не сомневаюсь. В конце концов, сложность придуманного пароля — явно не главная характеристика человека. И любая программа обязательно должна иметь «защиту от дурака».

>И если лишнее напоминаниеА то, что среди них найдется масса тех, кто вряд ли бы в каждом пароле использовал ту самую обязательную заглавную букву с той самой обязательной цифрой, я ничуть не сомневаюсь.В конце концов, сложность придуманного пароля — явно не главная характеристика человека. Dreamer. :

Спасибо, что помнишь про конкурсную статью 🙂

Источник

Оцените статью