From ef65019e4683cc6aa02472d391d43f8796383872 Mon Sep 17 00:00:00 2001 From: jinyaqiu Date: Tue, 19 Aug 2025 20:34:25 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=99=BB=E5=BD=95=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E8=81=94=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UserInterfaceState.xcuserstate | Bin 125554 -> 126571 bytes wake/Utils/APIConfig.swift | 18 +- wake/Utils/KeychainHelper.swift | 83 +++++++++ wake/View/Login/Login.swift | 167 +++++++++++++++--- 4 files changed, 242 insertions(+), 26 deletions(-) create mode 100644 wake/Utils/KeychainHelper.swift diff --git a/wake.xcodeproj/project.xcworkspace/xcuserdata/elliwood.xcuserdatad/UserInterfaceState.xcuserstate b/wake.xcodeproj/project.xcworkspace/xcuserdata/elliwood.xcuserdatad/UserInterfaceState.xcuserstate index 64481b2eb953bf6ecc034cc0bf342998c74ab9b0..ce3ab0a0f915cf11accc7aeb4c7122df9dd91f0a 100644 GIT binary patch literal 126571 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 Q`TzUh|Nno6v>p6^0PQpk-T(jq literal 125554 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

>ZJx!yVr}pL1D`(`` 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 Bool { + return save(token, for: .accessToken) + } + + /// 从 Keychain 获取访问令牌 + public static func getAccessToken() -> String? { + return get(for: .accessToken) + } + + /// 保存刷新令牌到 Keychain + public static func saveRefreshToken(_ token: String) -> Bool { + return save(token, for: .refreshToken) + } + + /// 从 Keychain 获取刷新令牌 + public static func getRefreshToken() -> String? { + return get(for: .refreshToken) + } + + /// 删除所有存储的令牌 + public static func clearTokens() { + delete(for: .accessToken) + delete(for: .refreshToken) + } + + // MARK: - 私有方法 + + private static func save(_ string: String, for key: KeychainKey) -> Bool { + guard let data = string.data(using: .utf8) else { return false } + + let query: [String: Any] = [ + kSecClass as String: kSecClassGenericPassword, + kSecAttrAccount as String: key.rawValue, + kSecValueData as String: data + ] + + // 先删除已存在的项目 + SecItemDelete(query as CFDictionary) + + // 添加新项目 + let status = SecItemAdd(query as CFDictionary, nil) + return status == errSecSuccess + } + + private static func get(for key: KeychainKey) -> String? { + let query: [String: Any] = [ + kSecClass as String: kSecClassGenericPassword, + kSecAttrAccount as String: key.rawValue, + kSecReturnData as String: true, + kSecMatchLimit as String: kSecMatchLimitOne + ] + + var dataTypeRef: AnyObject? + let status = SecItemCopyMatching(query as CFDictionary, &dataTypeRef) + + guard status == errSecSuccess, let data = dataTypeRef as? Data else { + return nil + } + + return String(data: data, encoding: .utf8) + } + + private static func delete(for key: KeychainKey) { + let query: [String: Any] = [ + kSecClass as String: kSecClassGenericPassword, + kSecAttrAccount as String: key.rawValue + ] + + SecItemDelete(query as CFDictionary) + } +} diff --git a/wake/View/Login/Login.swift b/wake/View/Login/Login.swift index 7b34b71..5a5e02d 100644 --- a/wake/View/Login/Login.swift +++ b/wake/View/Login/Login.swift @@ -12,7 +12,6 @@ struct LoginView: View { @State private var errorMessage = "" @State private var currentNonce: String? @State private var isLoggedIn = false - // MARK: - Body var body: some View { @@ -196,9 +195,12 @@ struct LoginView: View { print("🔵 [Apple ID] 准备调用后端认证...") authenticateWithBackend( - userId: userId, - email: email, - name: fullName, + userId: appleIDCredential.user, + email: appleIDCredential.email ?? "", + name: [appleIDCredential.fullName?.givenName, + appleIDCredential.fullName?.familyName] + .compactMap { $0 } + .joined(separator: " "), identityToken: identityToken, authCode: authCode ) @@ -216,37 +218,160 @@ struct LoginView: View { isLoading = true print("🔵 [Backend] 开始后端认证...") - let url = "https://your-api-endpoint.com/api/auth/apple" + let endpoint = "\(APIConfig.baseURL)/iam/login/oauth" + guard let url = URL(string: endpoint) else { + print("❌ [Backend] 无效的URL: \(endpoint)") + self.handleAuthenticationError(NSError(domain: "", code: -1, userInfo: [NSLocalizedDescriptionKey: "无效的URL"])) + return + } + var parameters: [String: Any] = [ - "appleUserId": userId, + "provider": "Apple", + "token": identityToken, + "userId": userId, "email": email, "name": name, - "identityToken": identityToken ] if let authCode = authCode { - parameters["authorizationCode"] = authCode + parameters["authorization_code"] = authCode } + print("📤 [Backend] 请求URL: \(endpoint)") print("📤 [Backend] 请求参数: \(parameters)") - AF.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default) - .validate() - .responseJSON { response in + var request = URLRequest(url: url) + request.httpMethod = "POST" + request.setValue("application/json", forHTTPHeaderField: "Content-Type") + + do { + request.httpBody = try JSONSerialization.data(withJSONObject: parameters, options: []) + } catch { + print("❌ [Backend] 参数序列化失败: \(error.localizedDescription)") + self.handleAuthenticationError(error) + return + } + + let task = URLSession.shared.dataTask(with: request) { data, response, error in + DispatchQueue.main.async { self.isLoading = false - switch response.result { - case .success(let value): - print("✅ [Backend] 认证成功: \(value)") - self.handleSuccessfulAuthentication() - case .failure(let error): - print("❌ [Backend] 认证失败: \(error.localizedDescription)") - if let data = response.data, let json = String(data: data, encoding: .utf8) { - print("❌ [Backend] 错误详情: \(json)") - } + // 1. 处理网络错误 + if let error = error { + print("❌ [Backend] 请求失败: \(error.localizedDescription)") self.handleAuthenticationError(error) + return + } + + // 2. 检查响应 + guard let httpResponse = response as? HTTPURLResponse else { + let error = NSError(domain: "", code: -1, userInfo: [NSLocalizedDescriptionKey: "无效的服务器响应"]) + print("❌ [Backend] \(error.localizedDescription)") + self.handleAuthenticationError(error) + return + } + + // 3. 打印响应状态码和头部信息 + let statusCode = httpResponse.statusCode + print(""" + 📥 [Backend] 响应信息: + - 状态码: \(statusCode) + - URL: \(httpResponse.url?.absoluteString ?? "N/A") + - Headers: \(httpResponse.allHeaderFields) + """) + + // 4. 处理响应数据 + if let data = data { + if let jsonString = String(data: data, encoding: .utf8) { + print("📦 [Backend] 响应内容: \(jsonString)") + } + + // 5. 解析响应数据 + do { + // 首先解析顶层 JSON + if let json = try JSONSerialization.jsonObject(with: data) as? [String: Any] { + print("✅ [Backend] 响应解析成功") + print("📦 [Backend] 响应内容: \(json)") + + // 检查状态码 + if let code = json["code"] as? Int, code != 0 { + let errorMsg = json["message"] as? String ?? "未知错误" + print("❌ [Backend] 请求失败: \(errorMsg)") + self.showError(message: errorMsg) + return + } + + // 获取 data 字典 + guard let responseData = json["data"] as? [String: Any] else { + print("⚠️ [Backend] 未找到 data 字段") + self.showError(message: "服务器返回数据格式错误") + return + } + + // 获取 user_login_info 字典 + if let userLoginInfo = responseData["user_login_info"] as? [String: Any] { + print("👤 [Backend] 用户登录信息: \(userLoginInfo)") + + // 保存令牌到 Keychain + if let accessToken = userLoginInfo["access_token"] as? String { + _ = KeychainHelper.saveAccessToken(accessToken) + print("🔑 [Keychain] 访问令牌已保存") + + // 保存用户信息到 UserDefaults + var userInfo: [String: Any] = [ + "user_id": userLoginInfo["user_id"] as? Int64 ?? 0, + "account": userLoginInfo["account"] as? String ?? "", + "nickname": userLoginInfo["nickname"] as? String ?? "", + "avatar": userLoginInfo["avatar_file_url"] as? String ?? "" + ] + UserDefaults.standard.set(userInfo, forKey: "currentUserInfo") + print("👤 [UserDefaults] 用户信息已保存") + } + + if let refreshToken = userLoginInfo["refresh_token"] as? String { + _ = KeychainHelper.saveRefreshToken(refreshToken) + print("🔄 [Keychain] 刷新令牌已保存") + } + + // 处理认证成功 + DispatchQueue.main.async { + self.handleSuccessfulAuthentication() + } + return + } else { + print("⚠️ [Backend] 未找到 user_login_info 字段") + self.showError(message: "登录信息不完整") + } + } + } catch { + print("⚠️ [Backend] 响应解析失败: \(error.localizedDescription)") + self.showError(message: "数据解析失败") + } + } + + // 6. 如果上面的 return 没有执行,说明认证失败 + if statusCode < 200 || statusCode >= 300 { + let errorMessage: String + switch statusCode { + case 400: + errorMessage = "请求参数错误" + case 401: + errorMessage = "认证失败,请重新登录" + case 403: + errorMessage = "权限不足" + case 404: + errorMessage = "请求的接口不存在" + case 500...599: + errorMessage = "服务器内部错误,请稍后重试" + default: + errorMessage = "未知错误 (状态码: \(statusCode))" + } + self.showError(message: errorMessage) } } + } + + task.resume() } // MARK: - Helpers @@ -264,7 +389,7 @@ struct LoginView: View { showError(message: "登录失败: \(error.localizedDescription)") } - private func handleAuthenticationError(_ error: AFError) { + private func handleAuthenticationError(_ error: Error) { let errorMessage = error.localizedDescription print("❌ [Auth] 认证错误: \(errorMessage)") DispatchQueue.main.async {