Authing 文档
文档
快速开始
概念
使用指南
开发集成
应用集成
加入 APN
多租户(内测版)
旧版
快速开始
概念
使用指南
开发集成
应用集成
加入 APN
多租户(内测版)
旧版
开发集成
  • 登录组件 (Guard)
  • 单点登录(SSO)
  • JavaScript / Node.js
  • Java / Kotlin
  • Python
  • C#
  • PHP
  • Go
  • Ruby
  • Android
  • iOS
    • 开始开发
    • 快速接入
    • 超组件
      • 教程

        • 入门示例
        • 基础登录示例
        • 复杂登录示例
        • 完善登录界面
        • 基础注册示例
        • 复杂注册示例
        • 登录注册转场
      • 基础组件

      • 社会化组件

    • APIs

    • 社会化登录
    • 私有化部署
  • Swift
  • Flutter
  • React Native
  • 微信小程序
  • 微信网页授权
  • 框架集成
  • 错误代码

    ¶ 复杂登录示例

    更新时间: 2022-03-22 10:58:40

    阅读此教程之前,确保已经完成了 开发准备

    在上一个 基础登录教程 里面,我们构建了一个简单的登录界面,接下来我们尝试构建一个更为复杂的登录界面,它包含一个可以切换登录方式的 Tab,支持帐号+密码登录以及电话号码+验证码登录

    ¶ 放置 LoginMethodTab

    放置一个 UIView,将其类型改为 LoginMethodTab

    LoginMethodTab 可以用来切换登录方式,它可以根据控制台设置动态调整显示类容,更多信息请参考 详细说明

    ¶ 放置手机号+验证码登录相关组件

    放置一个 TextField,将其类型改为 PhoneNumberTextField

    放置一个 TextField,将其类型改为 VerifyCodeTextField

    放置一个 Button,将其类型改为 GetVerifyCodeButton

    iOS 默认按钮文字较大,我们修改一下 GetVerifyCodeButton 的属性,同时去掉默认的 "Button" 文字

    更多 GetVerifyCodeButton 属性设置,请参考 详细说明

    运行看看效果:

    drawing

    现在可以通过手机号+验证码成功登录!因为 Guard 内部的实现优先选择手机号+验证码的方式。

    到目前为止,我们只是简单地将所有控件都放置到了界面上。接下来,我们需要将组件分组,从而实现切换效果。

    ¶ 放置 LoginContainer 并将组件添加到容器里面

    放置两个 UIView,将它们的类型改为 LoginContainer

    将 AccountTextField 和 PasswordTextField 放到第一个 LoginContainer 里面。

    将 PhoneNumberTextField、VerifyCodeTextField、GetVerifyCodeButton 放到第二个 LoginContainer 里面。

    调整位置和间距。可以参考下面布局:

    小技巧: 在 IB 里面放置重叠的控件时,xcode 会修改层级关系。我们可以先把两个 LoginContainer 放置在不同的区域,调整好大小以及内部控件位置后,将其中一个拖放至目标位置,再通过手动修改第二控件的 Y 坐标来实现重叠效果。

    ¶ 修改帐号密码登录 LoginContainer 类型

    这时如果运行应用程序,会发现“密码登录”容器里面为空。因为 LoginContainer 默认类型为 0,表示通过手机号码+验证码登录,因此,我们需要将帐号密码登录的 LoginContainer 的类型改为 1。首先在 ViewController 里面声明一个 @IBOutlet 成员变量

    @IBOutlet weak var passwordContainer: LoginContainer?
    

    然后绑定此变量

    修改类型

    override func viewDidLoad() {
        super.viewDidLoad()
        passwordContainer?.type = 1
    }
    

    ¶ 完成

    drawing drawing

    上一篇: 基础登录示例 下一篇: 完善登录界面

    本文是否有解决您的问题?

    如果遇到其他问题,你可以在 authing-chat/community 联系我们。

    • 放置 LoginMethodTab
    • 放置手机号+验证码登录相关组件
    • 放置 LoginContainer 并将组件添加到容器里面
    • 修改帐号密码登录 LoginContainer 类型
    • 完成

    用户身份管理

    集成第三方登录
    手机号闪验 (opens new window)
    通用登录表单组件
    自定义认证流程

    企业内部管理

    单点登录
    多因素认证
    权限管理

    开发者

    开发文档
    框架集成
    博客 (opens new window)
    GitHub (opens new window)
    社区用户中心 (opens new window)

    公司

    服务状态
    15559944612
    sales@authing.cn
    北京市朝阳区北辰世纪中心 B 座 16 层(总)
    成都市高新区天府五街 200 号 1 号楼 B 区 4 楼 406 室(分)

    京ICP备19051205号

    beian京公网安备 11010802035968号

    © 北京蒸汽记忆科技有限公司