Skip to content

Commit 066d34e

Browse files
committed
Store origina string representation
1 parent d978caa commit 066d34e

File tree

4 files changed

+15
-2
lines changed

4 files changed

+15
-2
lines changed

.travis.yml

+4-2
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,15 @@ script:
88
branches:
99
only:
1010
- master
11-
- feature-jwt-string
1211
notifications:
1312
slack:
1413
secure: UIG9+o5gRYZGpRRBIB/9nFBoXvSOI3Ll63KuUMd/u/CvFpByLY0MSX5LY18v6hYqA3UNjEhOO9x1j91H7JOjbI0NYtq/7+qehUDWORaQc+NSUozKLmkIGm1M6RYayUw61J9fYpyt8AjpbGIb78i7T8ckz7dYkyhEJcGz7L+30pw=
1514
env:
1615
matrix:
17-
- SCHEME="JWTDecode-iOS" IOS_DESTINATION_VERSION="9.1" CARTHAGE_BUILD_PLATFORM="iOS"
16+
- SCHEME="JWTDecode-iOS" IOS_DESTINATION_VERSION="9.1" CARTHAGE_BUILD_PLATFORM="iOS"
17+
- SCHEME="JWTDecode-iOS" IOS_DESTINATION_VERSION="9.0" CARTHAGE_BUILD_PLATFORM="iOS"
18+
- SCHEME="JWTDecode-iOS" IOS_DESTINATION_VERSION="8.4" CARTHAGE_BUILD_PLATFORM="iOS"
19+
- SCHEME="JWTDecode-OSX" CARTHAGE_BUILD_PLATFORM="Mac"
1820
global:
1921
- secure: hHc0uhSg57mTBfFUX7ZwZe85IlLMS+mMgOx192fnVyeD81S2AFxaO4nWRpXHktkR68HwDsYJ4emVeoaLxZb8tkkej+nf1L3NIY3FFEJpIEAmrYMv9AoFb0ZtT1IwGOt92bll0DqzZotOVOrPVZeS8MspwZAFqXHAgBszfJut/2w=
2022
- secure: dYWR8CvhN1g1ta3+ARWO5wYUIhhA5BjTKE29Df+URdNVuJMvvtNwuE8YpI9yKKz/rp9PbKo+6jAMozbiokj2Baf8xOawQvyiRWA7c5YRslM2oNuVX33yl949JMzpJmKRJiFi59lbu8gAmI090cHiG9HVw7etpNMy3JGCx9GIJhc=

JWTDecode/JWT.swift

+3
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ public protocol JWT {
3232
var body: [String: AnyObject] { get }
3333
/// token signature part
3434
var signature: String? { get }
35+
/// jwt string value
36+
var stringValue: String { get }
37+
3538

3639
/// value of `exp` claim if available
3740
var expiresAt: NSDate? { get }

JWTDecode/JWTDecode.swift

+2
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ struct DecodedJWT: JWT {
3939
let header: [String: AnyObject]
4040
let body: [String: AnyObject]
4141
let signature: String?
42+
let stringValue: String
4243

4344
init(jwt: String) throws {
4445
let parts = jwt.componentsSeparatedByString(".")
@@ -49,6 +50,7 @@ struct DecodedJWT: JWT {
4950
self.header = try decodeJWTPart(parts[0])
5051
self.body = try decodeJWTPart(parts[1])
5152
self.signature = parts[2]
53+
self.stringValue = jwt
5254
}
5355

5456
var expiresAt: NSDate? { return claim("exp") }

JWTDecodeTests/JWTDecodeSpec.swift

+6
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,12 @@ class JWTDecodeSpec: QuickSpec {
4747
expect(payload).to(equal(["sub": "myid", "name": "Shawarma Monk"]))
4848
}
4949

50+
it("should return original jwt string representation") {
51+
let jwtString = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjb20uc29td2hlcmUuZmFyLmJleW9uZDphcGkiLCJpc3MiOiJhdXRoMCIsInVzZXJfcm9sZSI6ImFkbWluIn0.sS84motSLj9HNTgrCPcAjgZIQ99jXNN7_W9fEIIfxz0"
52+
let jwt = try! decode(jwtString)
53+
expect(jwt.stringValue).to(equal(jwtString))
54+
}
55+
5056
it("should return expire date") {
5157
expect(expiredJWT().expiresAt).toNot(beNil())
5258
}

0 commit comments

Comments
 (0)