最近、アプリケーションをParse Serverから自分のカスタムサーバーに移行しました。プロジェクトでParse SDKをインポートせずにセッショントークンにアクセスする方法を見つけようとしています。セッショントークンが必要なので、現在ログインしているユーザーを再認証する必要はありません。iOS上で直接サーバーセッショントークンを取得するSwift
これまでのところ、私は解析SDKをインポートする必要があり、以下の方法でそれにアクセス:、私は見ていた他の解決策は、パースのプライベートドキュメントディレクトリですが、私は唯一のAPPLICATIONIDを得ることができ
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
}
})
installationIdとそこからの設定:
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
}
}