J'ai récemment migré mon application depuis Parse Server vers mon propre serveur personnalisé. J'essaye de trouver un moyen d'accéder au jeton de session sans avoir importé Parse SDK sur mon projet. J'ai besoin du jeton de session, donc je n'ai pas besoin de ré-authentifier mes utilisateurs connectés.Obtention du jeton de session du serveur d'analyse directement sur iOS Swift
Jusqu'à présent, je y accéder avec les méthodes suivantes, qui oblige à importer Parse sdk:
PFUser.current()?.saveInBackground(block: { [weak self] (success, error) in
if let error = error {
Log.error?.message(error.localizedDescription)
return
}
guard let sessionToken = PFUser.current()?.sessionToken else {
Log.error?.message("Did not get session token even after saving user")
return
}
})
L'autre solution que je cherchais à est le répertoire des documents privés de Parse, mais je ne pouvais obtenir applicationId, InstallationID et config à partir de là:
class ParseHelper {
var parsePrivateDocumentsDirectory: URL? {
let filemanager = FileManager.default
guard let libraryDirectory = filemanager.urls(for: .libraryDirectory, in: .userDomainMask).last else {
return nil
}
guard let parseDirectory = URL(string: "Private%20Documents/Parse/", relativeTo: libraryDirectory) else {
return nil
}
return parseDirectory
}
func parseFile(_ filename: String) -> URL? {
let filemanager = FileManager.default
guard let parseDirectory = self.parsePrivateDocumentsDirectory else {
return nil
}
guard let installationIdUrl = URL(string: filename, relativeTo: parseDirectory) else {
return nil
}
if filemanager.fileExists(atPath: installationIdUrl.path) {
return installationIdUrl
} else {
return nil
}
}
var installationId: String? {
guard let fileURL = self.parseFile("installationId"), let data = try? Data(contentsOf: fileURL) else {
return nil
}
let string = String(data: data, encoding: String.Encoding.utf8)
return string
}
var applicationId: String? {
guard let fileURL = self.parseFile("applicationId"), let data = try? Data(contentsOf: fileURL) else {
return nil
}
let string = String(data: data, encoding: String.Encoding.utf8)
return string
}
var config: String? {
guard let fileURL = self.parseFile("config"), let data = try? Data(contentsOf: fileURL) else {
return nil
}
let string = String(data: data, encoding: String.Encoding.utf8)
return string
}
}