mirror of
https://github.com/ecency/ecency-mobile.git
synced 2024-12-23 05:13:04 +03:00
69 lines
2.6 KiB
Objective-C
69 lines
2.6 KiB
Objective-C
//
|
|
// JWTClaimsSetSerializer.m
|
|
// JWT
|
|
//
|
|
// Created by Klaas Pieter Annema on 31-05-13.
|
|
// Copyright (c) 2013 Karma. All rights reserved.
|
|
//
|
|
|
|
#import "JWTClaimsSetSerializer.h"
|
|
|
|
@implementation JWTClaimsSetSerializer
|
|
|
|
+ (NSArray *)claimsSetKeys
|
|
{
|
|
return @[@"iss", @"sub", @"aud", @"exp", @"nbf", @"iat", @"jti", @"typ", @"scope"];
|
|
}
|
|
|
|
+ (NSDictionary *)dictionaryWithClaimsSet:(JWTClaimsSet *)theClaimsSet;
|
|
{
|
|
NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
|
|
[self dictionary:dictionary setObjectIfNotNil:theClaimsSet.issuer forKey:@"iss"];
|
|
[self dictionary:dictionary setObjectIfNotNil:theClaimsSet.subject forKey:@"sub"];
|
|
[self dictionary:dictionary setObjectIfNotNil:theClaimsSet.audience forKey:@"aud"];
|
|
[self dictionary:dictionary setDateIfNotNil:theClaimsSet.expirationDate forKey:@"exp"];
|
|
[self dictionary:dictionary setDateIfNotNil:theClaimsSet.notBeforeDate forKey:@"nbf"];
|
|
[self dictionary:dictionary setDateIfNotNil:theClaimsSet.issuedAt forKey:@"iat"];
|
|
[self dictionary:dictionary setObjectIfNotNil:theClaimsSet.identifier forKey:@"jti"];
|
|
[self dictionary:dictionary setObjectIfNotNil:theClaimsSet.type forKey:@"typ"];
|
|
[self dictionary:dictionary setObjectIfNotNil:theClaimsSet.scope forKey:@"scope"];
|
|
|
|
return [dictionary copy];
|
|
}
|
|
|
|
+ (JWTClaimsSet *)claimsSetWithDictionary:(NSDictionary *)theDictionary;
|
|
{
|
|
JWTClaimsSet *claimsSet = [[JWTClaimsSet alloc] init];
|
|
claimsSet.issuer = [theDictionary objectForKey:@"iss"];
|
|
claimsSet.subject = [theDictionary objectForKey:@"sub"];
|
|
claimsSet.audience = [theDictionary objectForKey:@"aud"];
|
|
claimsSet.expirationDate = [NSDate dateWithTimeIntervalSince1970:[[theDictionary objectForKey:@"exp"] doubleValue]];
|
|
claimsSet.notBeforeDate = [NSDate dateWithTimeIntervalSince1970:[[theDictionary objectForKey:@"nbf"] doubleValue]];
|
|
claimsSet.issuedAt = [NSDate dateWithTimeIntervalSince1970:[[theDictionary objectForKey:@"iat"] doubleValue]];
|
|
claimsSet.identifier = [theDictionary objectForKey:@"jti"];
|
|
claimsSet.type = [theDictionary objectForKey:@"typ"];
|
|
claimsSet.scope = [theDictionary objectForKey:@"scope"];
|
|
|
|
return claimsSet;
|
|
}
|
|
|
|
+ (void)dictionary:(NSMutableDictionary *)theDictionary setObjectIfNotNil:(id)theObject forKey:(id<NSCopying>)theKey;
|
|
{
|
|
if (!theObject)
|
|
return;
|
|
|
|
[theDictionary setObject:theObject forKey:theKey];
|
|
}
|
|
|
|
+ (void)dictionary:(NSMutableDictionary *)theDictionary setDateIfNotNil:(NSDate*)date forKey:(id<NSCopying>)theKey;
|
|
{
|
|
if (!date)
|
|
return;
|
|
NSNumber* value = @((unsigned long)[date timeIntervalSince1970]);
|
|
|
|
[theDictionary setObject:value forKey:theKey];
|
|
}
|
|
|
|
|
|
@end
|