Implement JWT

I think returning a case class is a much cleaner and an easier way for consumers to understand what is `_.1` and `_.2`