Как извлечь дату 'exp' из полезной нагрузки токена JWT - PullRequest
0 голосов
/ 17 июня 2020

Я получаю токен JWT в ответ. Что я сделал, так это то, что я декодировал только раздел полезной нагрузки из jwtToken, теперь я хочу извлечь «exp» из полезной нагрузки, чтобы проверить дату истечения срока действия, как я могу получить «exp». из полезной нагрузки, пожалуйста, помогите мне.

struct JWTTokenDecoder {

    func decode(jwtToken token: String) throws -> [String: Any] {
        enum DecodeErrors: Error {
            case badToken
            case unkown
        }

        func base64Decode(_ base64: String) throws -> Data {
            let padded = base64.padding(toLength: ((base64.count + 3) / 4) * 4, withPad: "=", startingAt: 0)
            guard let decoded = Data(base64Encoded: padded) else {
                throw DecodeErrors.badToken
            }
            return decoded
        }

        func decodeJWTPart(_ value: String) throws -> [String: Any] {
            let body = try base64Decode(value)
            let json = try JSONSerialization.jsonObject(with: body, options: [])
            guard let payload = json as? [String: Any] else {
                throw DecodeErrors.unkown
            }
            return payload
        }
        let segments = token.components(separatedBy: ".")
        return try decodeJWTPart(segments[1])
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...