@@ -111,6 +111,20 @@ func load(jwt:String) -> LoadResult {
111
111
112
112
// MARK: Validation
113
113
114
+ func validateIssuer( payload: Payload , issuer: String ? ) -> InvalidToken ? {
115
+ if let issuer = issuer {
116
+ if let iss = payload [ " iss " ] as? String {
117
+ if iss != issuer {
118
+ return . InvalidIssuer
119
+ }
120
+ } else {
121
+ return . InvalidIssuer
122
+ }
123
+ }
124
+
125
+ return nil
126
+ }
127
+
114
128
func validateDate( payload: Payload , key: String , comparison: NSComparisonResult , failure: InvalidToken , decodeError: String ) -> InvalidToken ? {
115
129
if let timestamp = payload [ key] as? NSTimeInterval {
116
130
let date = NSDate ( timeIntervalSince1970: timestamp)
@@ -125,17 +139,8 @@ func validateDate(payload:Payload, key:String, comparison:NSComparisonResult, fa
125
139
}
126
140
127
141
func validateClaims( payload: Payload , audience: String ? , issuer: String ? ) -> InvalidToken ? {
128
- if let issuer = issuer {
129
- if let iss = payload [ " iss " ] as? String {
130
- if iss != issuer {
131
- return . InvalidIssuer
132
- }
133
- } else {
134
- return . InvalidIssuer
135
- }
136
- }
137
-
138
- return validateDate ( payload, " exp " , . OrderedAscending, . ExpiredSignature, " Expiration time claim (exp) must be an integer " ) ??
142
+ return validateIssuer ( payload, issuer) ??
143
+ validateDate ( payload, " exp " , . OrderedAscending, . ExpiredSignature, " Expiration time claim (exp) must be an integer " ) ??
139
144
validateDate ( payload, " nbf " , . OrderedDescending, . ImmatureSignature, " Not before claim (nbf) must be an integer " ) ??
140
145
validateDate ( payload, " iat " , . OrderedDescending, . InvalidIssuedAt, " Issued at claim (iat) must be an integer " )
141
146
}
0 commit comments