登录和注册
了解如何在 EasyAppSwiftUI 中实现登录和注册

登录和注册模块
LoginAndSignUp 模块是一个完整的用户认证解决方案,提供登录、注册、忘记密码和邮箱验证等功能。
我们后续提供更多精美登录和注册页面,敬请期待。
模块结构
LoginAndSignUp/
├── View/
│ └── LoginAndSignUp.swift # 主视图,管理登录/注册切换
└── SubPages/
├── SignIn/View/
│ └── SignInView.swift # 登录界面
├── SignUp/View/
│ └── SignUpView.swift # 注册界面
├── ForgotPwd/View/
│ └── ForgotPwdView.swift # 忘记密码
└── VerifyEmailView/View/
└── VerifyEmailView.swift # 邮箱验证核心功能
1. 主视图切换
主视图使用状态管理在登录和注册界面间切换,并提供流畅的滑动动画:
struct LoginAndSignUp: View {
@State private var showSignUp = false
var body: some View {
if showSignUp {
SignUpView(showSignIn: $showSignUp)
.transition(.asymmetric(
insertion: .move(edge: .trailing),
removal: .move(edge: .trailing)
))
} else {
SignInView(showSignUp: $showSignUp)
.transition(.asymmetric(
insertion: .move(edge: .leading),
removal: .move(edge: .leading)
))
}
}
}2. 登录功能
支持两种登录方式:
- 邮箱密码登录
- Apple ID 登录
关键特性:
- 实时输入验证(邮箱格式、密码强度)
- 忘记密码链接
- 加载状态指示
- Toast 消息提示
func signInWithEmail() {
Task {
do {
try await authManager.signIn(email: account, password: password)
} catch {
print("signInWithEmailError:\(error)")
}
}
}
func signInWithApple(idToken: String) {
Task {
do {
try await authManager.signInWithApple(idToken: idToken)
} catch {
print("signInWithAppleError:\(error)")
}
}
}3. 注册功能
注册流程:
- 用户输入邮箱和密码
- 实时验证输入格式
- 提交注册请求
- 成功后自动跳转到登录页面
输入验证规则:
- 邮箱格式验证
- 密码长度(6-12位字符)
- 密码必须包含字母
func onSignUp() {
Task {
do {
try await authManager.signUp(email: account, password: password)
} catch {
print("onSignUpError:\(error)")
}
}
}4. 忘记密码
提供密码重置功能,用户可以:
- 输入邮箱地址
- 设置新密码
- 验证输入有效性
- 发送重置请求
5. 邮箱验证
当用户注册后需要验证邮箱时,显示验证界面:
- 提示用户查看邮件
- 提供重发验证邮件功能
- 监听应用状态变化
Button(action: {
isLoading = true
Task {
do {
try await authManager.resendVerificationEmail(email: email)
isLoading = false
} catch {
isLoading = false
}
}
}) {
Text("resend_verification_email")
.font(.title3)
}认证管理
模块通过 AuthManager 处理所有认证逻辑:
- Supabase 集成:使用 Supabase 作为后端认证服务
- 状态管理:自动管理用户登录状态
- 会话处理:处理 token 刷新和过期
- 订阅集成:支持 RevenueCat 和 StoreKit2
Last updated on