code: func jwtToAccessToken(t *jwt.Token) (*AccessToken, error) {
  	var token AccessToken
  
  	if t.Claims["exp"] != nil {
  		exp := time.Unix(int64(t.Claims["exp"].(float64)), 0).UTC()
  		token.ExpiresAt = &exp
  	}
  
  	if u, ok := t.Claims["User"].(map[string]interface{}); ok {
  		var user empire.User
  
  		if n, ok := u["Name"].(string); ok {
  			user.Name = n
  		} else {
  			return &token, errors.New("missing name")
  		}
  
  		if gt, ok := u["GitHubToken"].(string); ok {
  			user.GitHubToken = gt
  		} else {
  			return &token, errors.New("missing github token")
  		}
  
  		token.User = &user
  	} else {
  		return &token, errors.New("missing user")
  	}
  
  	return &token, nil
  }
docs: // jwtToAccessTokens maps a jwt.Token to an AccessToken.