Имплементация Parse Server: регистрация и логин в Android
17 мин
учебник по входу и регистрации пользователей введение в этом разделе мы рассмотрим, как создать приложение с простой регистрацией пользователей с использованием основных функций parse server https //www back4app com/product/parse server через back4app этот учебник использует базовое приложение, созданное в android studio 4 1 1 с \<font color="#2166ae">buildtoolsversion=30 0 2\</font> , \<font color="#2166ae">compile sdk version = 30 0 2\</font> и \<font color="#2166ae">targetsdkversion 30\</font> в любое время вы можете получить доступ к полному проекту android, созданному с помощью этого учебника, в наших репозиториях на github репозиторий примера на kotlin https //github com/templates back4app/android parse sdk kotlin репозиторий примера на java https //github com/templates back4app/android parse sdk java цель мы научимся, как войти в систему и зарегистрироваться с использованием parse вот предварительный просмотр того, что мы собираемся достичь предварительные условия чтобы завершить этот учебник, нам нужно android studio https //developer android com/studio/index html приложение, созданное на back4app примечание следуйте учебнику по созданию нового parse app https //www back4app com/docs/get started/new parse app чтобы узнать, как создать parse app на back4app android приложение, подключенное к back4app примечание следуйте учебнику по установке parse sdk https //www back4app com/docs/android/parse android sdk чтобы создать проект android studio, подключенный к back4app устройство (или виртуальное устройство https //developer android com/studio/run/managing avds html ) с android 4 1 (jelly bean) или новее 1 импорт библиотеки на этом этапе мы импортируем библиотеки, которые будем использовать в нашем проекте мы добавим следующие классы parse в наши активности 1 import com parse parse ; 2 import com parse parseexception ; 3 import com parse parseuser ; 2\ мы будем часто использовать лямбда функции в нашем проекте, поэтому нам нужно добавить java 1 8 в наш проект через build gradle(module\ app) 1 compileoptions { 2 sourcecompatibility javaversion version 1 8 3 targetcompatibility javaversion version 1 8 4 } 2 регистрация регистрация в основном создает новый объект parse user в классе user, который отображается как “пользователь” в вашем приложении \<font color="#2166ae">панель управления\</font> нам нужно установить как минимум два свойства при создании нового пользователя => \<font color="#2166ae">parseuser setusername()\</font> и \<font color="#2166ae">parseuser setpassword()\</font> метод, используемый для сохранения нового пользователя на android, это \<font color="#2166ae">parseuser signupinbackground()\</font> , который может быть вместе с функцией обратного вызова примечание объекты этого специального класса не сохраняются на \<font color="#2166ae">панели управления\</font> с помощью метода \<font color="#2166ae">parseobject save()\</font> чтобы сделать \<font color="#2166ae">signupactivity\</font> работоспособным, выполните следующие шаги импортируйте 1 import com parse signupcallback ; в ваш \<font color="#2166ae">signupactivity\</font> , в дополнение к зависимостям, импортированным в шаг 1 }]},{ 1 parseuser user = new parseuser(); 2 // установите имя пользователя и пароль, которые можно получить через формы 3 user setusername( "<ваше имя пользователя здесь>"); 4 user setpassword( "<ваш пароль здесь>"); 5 user signupinbackground(new signupcallback() { 6 @override 7 public void done(parseexception e) { 8 if (e == null) { 9 showalert("успешная регистрация!", "добро пожаловать" + "<ваше имя пользователя здесь>" +"!"); 10 } else { 11 parseuser logout(); 12 toast maketext(signupactivity this, e getmessage(), toast length long) show(); 13 } 14 } 15 });1 val user = parseuser(); 2 // установите имя пользователя и пароль, которые можно получить через формы 3 user setusername("<ваше имя пользователя здесь>"); 4 user setpassword("<ваш пароль здесь>"); 5 user signupinbackground(signupcallback() { 6 if (it == null) { 7 showalert("успешная регистрация!", "добро пожаловать" + "<ваше имя пользователя здесь>" + "!"); 8 } else { 9 parseuser logout(); 10 toast maketext(this, it message, toast length long) show(); 11 } 12 }); в примере проекта этот код помещен внутри \<font color="#2166ae">зарегистрироваться\</font> , обратного вызова кнопки также имя пользователя и пароль захватываются с помощью редактировать тексты 3\ интересно добавить дополнительный метод для отображения диалогов предупреждений и сделать процесс более профессиональным метод ниже делает это 1 private void showalert(string title,string message){ 2 alertdialog builder builder = new alertdialog builder(signupactivity this) 3 settitle(title) 4 setmessage(message) 5 setpositivebutton("ok", new dialoginterface onclicklistener() { 6 @override 7 public void onclick(dialoginterface dialog, int which) { 8 dialog cancel(); 9 // don't forget to change the line below with the names of your activities 10 intent intent = new intent(signupactivity this, logoutactivity class); 11 intent addflags(intent flag activity clear task | intent flag activity new task); 12 startactivity(intent); 13 } 14 }); 15 alertdialog ok = builder create(); 16 ok show(); 17 }1 private fun showalert(title string, message string) { 2 val builder = alertdialog builder(this) 3 settitle(title) 4 setmessage(message) 5 setpositivebutton("ok") { dialog, which > 6 dialog cancel() 7 // don't forget to change the line below with the names of your activities 8 val intent = intent(this, logoutactivity class java) 9 intent addflags(intent flag activity clear task or intent flag activity new task) 10 startactivity(intent) 11 } 12 val ok = builder create() 13 ok show() 14 } 3 вход в систему вход в систему создает объект session, который указывает на вошедшего пользователя если вход в систему успешен, \<font color="#2166ae">parseuser getcurrentuser()\</font> возвращает объект user и объект session, который создан в \<font color="#2166ae">панели управления\</font> в противном случае, если целевое имя пользователя не существует или пароль неверен, он возвращает null метод, используемый для выполнения действия входа в систему, это \<font color="#2166ae">parseuser logininbackground()\</font> , который требует столько же аргументов, сколько строк имени пользователя и пароля, и может вызывать функцию обратного вызова примечание после регистрации вход в систему выполняется автоматически чтобы сделать \<font color="#2166ae">loginactivity\</font> работоспособным, выполните следующие шаги импортируйте в ваш \<font color="#2166ae">loginactivity\</font> , в дополнение к зависимостям, импортированным в шаг 1 1 import com parse logincallback ; 2\ чтобы реализовать функцию входа пользователя, просто используйте код 1 private void login(string username, string password) { 2 progressdialog show(); 3 parseuser logininbackground(username, password, (parseuser, e) > { 4 progressdialog dismiss(); 5 if (parseuser != null) { 6 showalert("successful login", "welcome back " + username + " !"); 7 } else { 8 parseuser logout(); 9 toast maketext(loginactivity this, e getmessage(), toast length long) show(); 10 } 11 }); 12 }1 fun login(username string, password string) { 2 progressdialog? show() 3 parseuser logininbackground(username,password) { parseuser parseuser?, parseexception parseexception? > 4 progressdialog? dismiss() 5 if (parseuser != null) { 6 showalert("successful login", "welcome back " + username + " !") 7 } else { 8 parseuser logout() 9 if (parseexception != null) { 10 toast maketext(this, parseexception message, toast length long) show() 11 } 12 } 13 } 14 } в примере проекта этот код помещен внутри \<font color="#2166ae">кнопки входа\</font> также имя пользователя и пароль захватываются с помощью edit texts метод \<font color="#2166ae">showalert\</font> такой же, как вы добавили в \<font color="#2166ae">signupactivity\</font> , не забудьте изменить его \<font color="#2166ae">intent\</font> аргументы 4 выйти выход удаляет активный объект сессии для вошедшего пользователя метод, используемый для выхода, это \<font color="#2166ae">parseuser logoutinbackground()\</font> чтобы реализовать выход пользователя, просто используйте код ниже в \<font color="#2166ae">logoutactivity\</font> 1 parseuser logoutinbackground(e > { 2 progressdialog dismiss(); 3 if (e == null) 4 showalert("so, you're going ", "ok bye bye then"); 5 });1 fun login(username string, password string) { 2 progressdialog? show() 3 parseuser logininbackground(username,password) { parseuser parseuser?, parseexception parseexception? > 4 progressdialog? dismiss() 5 if (parseuser != null) { 6 showalert("successful login", "welcome back " + username + " !") 7 } else { 8 parseuser logout() 9 if (parseexception != null) { 10 toast maketext(this, parseexception message, toast length long) show() 11 } 12 } 13 } 14 } в примере проекта этот код помещен внутри \<font color="#2166ae">кнопки выхода\</font> обратного вызова метод \<font color="#2166ae">showalert\</font> такой же, как вы добавили в \<font color="#2166ae">loginactivity\</font> и \<font color="#2166ae">signupactivity\</font> , не забудьте изменить его \<font color="#2166ae">intent\</font> аргументы 5 протестируйте ваше приложение запустите ваше приложение и создайте несколько пользователей, также попробуйте войти снова после их регистрации войдите на сайт back4app https //www back4app com/ найдите ваше приложение и нажмите на \<font color="#2166ae">панель управления\</font> > \<font color="#2166ae">ядро\</font> > \<font color="#2166ae">браузер\</font> > \<font color="#2166ae">пользователь\</font> на этом этапе вы должны увидеть ваших пользователей, как показано ниже примечание используя коды, отображенные выше, каждый раз, когда вы входите с пользователем, \<font color="#2166ae">сессия\</font> открывается в вашей \<font color="#2166ae">панели управления\</font> , но когда пользователь выходит, эта конкретная \<font color="#2166ae">сессия\</font> заканчивается также, всякий раз, когда происходит неудачная попытка входа или регистрации, \<font color="#2166ae">сессия\</font> открытая на сервере parse \<font color="#2166ae">панели управления\</font> удаляется готово! поздравляем! теперь вы можете входить, регистрироваться или выходить из вашего приложения, используя основные функции сервера parse через back4app!