Skip to content

Instantly share code, notes, and snippets.

@timbaev
Created January 25, 2019 15:13
Show Gist options
  • Save timbaev/bba13520b7efd56254c8c9650cd9521b to your computer and use it in GitHub Desktop.
Save timbaev/bba13520b7efd56254c8c9650cd9521b to your computer and use it in GitHub Desktop.
Publicly readable set of claims
import JWT
struct AccessTokenPayload: JWTPayload {
var issuer: IssuerClaim
var issuedAt: IssuedAtClaim
var expirationAt: ExpirationClaim
var userID: User.ID
init(issuer: String = "TokensTutorial",
issuedAt: Date = Date(),
expirationAt: Date = Date().addingTimeInterval(JWTConfig.expirationTime),
userID: User.ID) {
self.issuer = IssuerClaim(value: issuer)
self.issuedAt = IssuedAtClaim(value: issuedAt)
self.expirationAt = ExpirationClaim(value: expirationAt)
self.userID = userID
}
func verify(using signer: JWTSigner) throws {
try self.expirationAt.verifyNotExpired()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment