iOS
使用 XCode 和 Back4App 实现用户注册登录的教程
16 分
使用 xcode 和 back4app 的登录和用户注册教程 介绍 本节解释了如何通过 back4app 创建一个具有简单用户注册的应用程序,使用 https //www back4app com/product/parse server 。 它的外观如下: 在任何时候,您都可以在我们的 https //github com/templates back4app/ios install sdk 中访问使用本教程构建的完整项目。 要完成此快速入门,您需要: https //developer apple com/xcode/ 在 back4app 创建的应用程序。 请遵循 https //www back4app com/docs/get started/new parse app 以了解如何在 back4app 创建 parse 应用程序。 一个连接到 back4app 的 ios 应用程序。 注意: 请遵循 https //www back4app com/docs/ios/parse objc sdk 以创建一个连接到 back4app 的 xcode 项目。 一个付费的 apple 开发者账户。 1 设置 添加另一个视图控制器,称为 loggedinviewcontroller。在主故事板上将视图控制器拖到画布上,并将类设置为 loggedinviewcontroller,将故事板 id 设置为 loggedinviewcontroller。 在 viewcontroller m 和 loggedinviewcontroller m 中,确保通过在文件顶部包含 parse 模块来包含它。 \#import \<parse/parse h> 2 创建您的注册和登录 ui 登录会创建一个会话对象,该对象指向已登录的用户。如果登录成功, parseuser currentuser() 返回一个用户对象,并在 仪表板 仪表板 中创建一个会话对象。否则,如果目标用户名不存在或密码错误,则返回 null。 执行登录操作的方法是 parseuser loginwithusername() , 需要与用户名和密码字符串一样多的参数,并可能调用回调函数。 注意: 注册后,登录会自动执行。 将四个 uitextfield 拖到主 storyboard 的 viewcontroller 上。将文本框居中,并在视图控制器的顶部放置两个,在底部放置两个。再拖两个 uibutton 到视图中,并将它们放在文本框下方。将顶部按钮的文本设置为“登录”。将底部按钮的文本设置为“注册”。将文本框的文本设置为“用户名”和“密码”。它应该看起来像这样。 2\ 接下来,我们将把 storyboard 中的 uitextfield 连接到视图控制器中的属性。将以下属性添加到 viewcontroller m 的顶部。接下来,转到 storyboard,右键单击每个 uitextfield,单击引用 outlet,然后将线拖回 viewcontroller 图标并设置为相应的字段。signinusernamefield 连接到登录用户名字段,等等……最后,我们将添加一个 uiactivityindicatorview 以备后用。 @interface viewcontroller (){ iboutlet uitextfield signinusernametextfield; iboutlet uitextfield signinpasswordtextfield; iboutlet uitextfield signupusernametextfield; iboutlet uitextfield signuppasswordtextfield; uiactivityindicatorview activityindicatorview; } 2\ 然后在 viewdidload 方法中将 uiactivityindicatorview 设置为附加到屏幕中间。 \ (void)viewdidload { \[super viewdidload]; cgrect frame = cgrectmake (120 0, 185 0, 80, 80); activityindicatorview = \[\[uiactivityindicatorview alloc] initwithframe\ frame]; activityindicatorview\ color = \[uicolor bluecolor]; \[self view addsubview\ activityindicatorview]; } 3\ 然后在 viewdidappear 方法中检查您是否已经登录。如果您已登录,您将重定向用户到 loggedinviewcontroller。 \ (void)viewdidappear (bool)animated { if (\[pfuser currentuser]) { \[self gotomainpage]; } } 4\ 接下来让我们添加 gotomainpage 方法。它将重定向用户到 loggedinviewcontroller。确保 storyboard 中的 loggedinviewcontroller 的类和 storyboard id 设置为 loggedinviewcontroller。 \ (void)gotomainpage { nsstring storyboardname = @"main"; uistoryboard storyboard = \[uistoryboard storyboardwithname\ storyboardname bundle nil]; loggedinviewcontroller vc = \[storyboard instantiateviewcontrollerwithidentifier @"loggedinviewcontroller"]; \[self presentviewcontroller\ vc animated\ yes completion\ nil]; } 5\ 现在让我们设置与主故事板中 viewcontroller 上的 signup 按钮连接的 ibaction。 \ (ibaction)signup (id)sender { pfuser user = \[pfuser user]; user username = signupusernametextfield text; user password = signuppasswordtextfield text; \[activityindicatorview startanimating]; \[user signupinbackgroundwithblock ^(bool succeeded, nserror error) { \[self >activityindicatorview stopanimating]; if (!error) { \[self gotomainpage]; } else { \[self displaymessagetouser\ error localizeddescription]; } }]; } 6\ 我们需要添加 displayerrormessage 函数以显示来自服务器的任何错误消息。每当我们与解析应用程序通信时,我们将使用此方法。 \ (void)displaymessagetouser (nsstring )message { uialertcontroller alert = \[uialertcontroller alertcontrollerwithtitle @"message" message\ message preferredstyle\ uialertcontrollerstylealert]; uipopoverpresentationcontroller poppresenter = \[alert popoverpresentationcontroller]; poppresenter sourceview = self view; uialertaction okbutton = \[uialertaction actionwithtitle @"ok" style\ uialertactionstyledefault handler ^(uialertaction action) { }]; \[alert addaction\ okbutton]; poppresenter sourcerect = self view\ frame; alert modalpresentationstyle = uimodalpresentationpopover; \[self presentviewcontroller\ alert animated\ yes completion\ nil]; } 7\ 现在我们可以处理网络活动和网络错误,让我们设置与主故事板中 viewcontroller 上的 signin 按钮连接的 ibaction。 \ (ibaction)signup (id)sender { pfuser user = \[pfuser user]; user username = signupusernametextfield text; user password = signuppasswordtextfield text; \[activityindicatorview startanimating]; \[user signupinbackgroundwithblock ^(bool succeeded, nserror error) { \[self >activityindicatorview stopanimating]; if (!error) { \[self gotomainpage]; } else { \[self displaymessagetouser\ error localizeddescription]; } }]; } 3 登出 登出会删除已登录用户的活动会话对象。执行登出的方法是 parseuser logoutinbackgroundwithblock() 将一个 uibutton 拖到主故事板中的 loggedinviewcontroller。将按钮标题设置为‘登出’。它应该看起来像这样。 让我们再次添加 displayerrormessage 函数,以显示来自服务器的任何错误消息。每当我们与解析应用程序通信时,我们将使用此方法。 \ (void)displaymessagetouser (nsstring )message { uialertcontroller alert = \[uialertcontroller alertcontrollerwithtitle @"消息" message\ message preferredstyle\ uialertcontrollerstylealert]; uipopoverpresentationcontroller poppresenter = \[alert popoverpresentationcontroller]; poppresenter sourceview = self view; uialertaction okbutton = \[uialertaction actionwithtitle @"确定" style\ uialertactionstyledefault handler ^(uialertaction action) { }]; \[alert addaction\ okbutton]; poppresenter sourcerect = self view\ frame; alert modalpresentationstyle = uimodalpresentationpopover; \[self presentviewcontroller\ alert animated\ yes completion\ nil]; } 2\ 让我们添加gotostartpage函数,以便在我们注销后返回登录/注册屏幕。 \ (void)gotostartpage { nsstring storyboardname = @"main"; uistoryboard storyboard = \[uistoryboard storyboardwithname\ storyboardname bundle nil]; viewcontroller vc = \[storyboard instantiateviewcontrollerwithidentifier @"viewcontroller"]; \[self presentviewcontroller\ vc animated\ yes completion\ nil]; } 3\ 最后,让我们添加ibaction来执行注销调用,并带我们回到viewcontroller m的注册/登录页面。此方法注销pfuser并将您带回注册页面。将此ibaction连接到loggedinviewcontroller上的注销按钮。 \ (ibaction)logout (id)sender { \[activityindicatorview startanimating]; \[pfuser logoutinbackgroundwithblock ^(nserror nullable error) { \[self >activityindicatorview stopanimating]; if(error == nil){ \[self gotostartpage]; }else{ \[self displaymessagetouser\ error debugdescription]; } }]; } 4 测试您的应用 运行您的应用程序并创建几个用户,注册后也尝试再次登录。 在 https //www back4app com/ 找到您的应用程序并点击 仪表板 仪表板 > 核心 核心 > 浏览器 浏览器 > 用户 用户 尝试使用相同的用户登录和注销,然后重新登录。 此时,您应该看到您的用户,如下所示 注意 使用上面显示的代码,每次您使用用户登录时,都会在您的 会话 会话 中打开一个 仪表板 仪表板 , 但是当用户注销时,该特定的 会话 会话 结束。此外,每当发生不成功的登录或注册尝试时,在 parse server 中打开的 会话 会话 在 仪表板 仪表板 中被删除。 完成! 在这个阶段,您可以使用 back4app 通过 parse server 核心功能登录、注册或注销您的应用程序!