Example/JWTDesktopSwift/JWTDesktopSwift/ViewController+Model.swift
//
// ViewController+Model.swift
// JWTDesktopSwift
//
// Created by Lobanov Dmitry on 30.10.2017.
// Copyright © 2017 JWTIO. All rights reserved.
//
import Foundation
import JWT
import JWTDesktopSwiftToolkit
extension ViewController {
class Model {
var appearance: TokenTextAppearance = .init()
var decoder: TokenDecoder = .init()
var signatureValidation: SignatureValidationType = .unknown
}
enum DataSeedType {
case hs256
case rs256
struct DataSeed {
var algorithmName: String
var secret: String
var token: String
}
var dataSeed: DataSeed {
switch self {
case .hs256:
let algorithmName = JWTAlgorithmNameHS256
let secret = "secret"
let token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
return .init(algorithmName: algorithmName, secret: secret, token: token)
case .rs256:
let algorithmName = JWTAlgorithmNameRS256
let secret = "-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoPryo3IisfK3a028bwgso/CW5kB84mk6Y7rO76FxJRTWnOAla0Uf0OpIID7go4Qck66yT4/uPpiOQIR0oW0plTekkDP75EG3d/2mtzhiCtELV4F1r9b/InCN5dYYK8USNkKXgjbeVyatdUvCtokz10/ibNZ9qikgKf58qXnn2anGvpE6ded5FOUEukOjr7KSAfD0KDNYWgZcG7HZBxn/3N7ND9D0ATu2vxlJsNGOkH6WL1EmObo/QygBXzuZm5o0N0W15EXpWVbl4Ye7xqPnvc1i2DTKxNUcyhXfDbLw1ee2d9T/WU5895Ko2bQ/O/zPwUSobM3m+fPMW8kp5914kwIDAQAB-----END PUBLIC KEY-----"
let token = "eyJraWQiOiJqd3RfdWF0X2tleXMiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiI1MDAxIiwiaXNzIjoiQ0xNIiwiZXhwIjoxNTA4MjQ5NTU3LCJqdGkiOiI2MjcyM2E4Yi0zOTZmLTQxYmYtOTljMi02NWRkMzk2MDNiNjQifQ.Cej8RJ6e2HEU27rh_TyHZBoMI1jErmhOfSFY4SRzRoijSP628hM82XxjDX24HsKqIsK1xeeGI1yg1bed4RPhnmDGt4jAY73nqguZ1oqZ2DTcfZ5olxCXyLLaytl2XH7-62M_mFUcGj7I2mwts1DQkHWnFky2i4uJXlksHFkUg2xZoGEjVHo0bxCxgQ5yQiOpxC5VodN5rAPM3A5yMG6EijOp-dvUThjoJ4RFTGKozw_x_Qg6RLGDusNcmLIMbHasTsyZAZle6RFkwO0Sij1k6z6_xssbOl-Q57m7CeYgVHMORdzy4Smkmh-0gzeiLsGbCL4fhgdHydpIFajW-eOXMw"
return .init(algorithmName: algorithmName, secret: secret, token: token)
}
}
}
}
// JWT
extension ViewController.Model {
var availableAlgorithms: [JWTAlgorithm] {
JWTAlgorithmFactory.algorithms
}
var availableAlgorithmsNames: [String] {
self.availableAlgorithms.map(\.name)
}
}