Nextcloud Login refactoring
This commit is contained in:
44
Nextcloud Cookbook iOS Client/Data/AuthManager.swift
Normal file
44
Nextcloud Cookbook iOS Client/Data/AuthManager.swift
Normal file
@@ -0,0 +1,44 @@
|
||||
//
|
||||
// AuthManager.swift
|
||||
// Nextcloud Cookbook iOS Client
|
||||
//
|
||||
// Created by Vincent Meilinger on 30.05.25.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import KeychainSwift
|
||||
|
||||
class AuthManager {
|
||||
static let shared = AuthManager()
|
||||
let keychain = KeychainSwift()
|
||||
|
||||
var authString: String? = nil
|
||||
|
||||
private let nextcloudUsernameKey = "nextcloud_username"
|
||||
private let nextcloudAuthStringKey = "nextcloud_auth_string" // Stored as base64
|
||||
|
||||
func saveNextcloudCredentials(username: String, appPassword: String) {
|
||||
keychain.set(username, forKey: nextcloudUsernameKey)
|
||||
|
||||
let loginString = "\(username):\(appPassword)"
|
||||
if let loginData = loginString.data(using: .utf8) {
|
||||
keychain.set(loginData.base64EncodedString(), forKey: nextcloudAuthStringKey)
|
||||
}
|
||||
}
|
||||
|
||||
func getNextcloudCredentials() -> (username: String?, authString: String?) {
|
||||
let username = keychain.get(nextcloudUsernameKey)
|
||||
let authString = keychain.get(nextcloudAuthStringKey)
|
||||
|
||||
return (username, authString)
|
||||
}
|
||||
|
||||
func loadAuthString() {
|
||||
authString = keychain.get(nextcloudAuthStringKey)
|
||||
}
|
||||
|
||||
func deleteNextcloudCredentials() {
|
||||
keychain.delete(nextcloudUsernameKey)
|
||||
keychain.delete(nextcloudAuthStringKey)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user