tokenInfo :: AccessToken -> Config -> ExceptT T.Text IO UserInfo
tokenInfo token Config{..} = do
  resp <- liftIO $ post (T.unpack $ basePath <> "/tokeninfo") requestParams
  case AE.eitherDecode (resp ^. responseBody) of
    (Left  err) -> throwError $ T.pack $ show err
    (Right ui)  -> return ui
  where
    requestParams =
      [ "id_token" := ((getIdToken token) :: T.Text) 
      ]
    
-- | 
-- 
tokenInfo :: AccessToken -> Config -> ExceptT T.Text IO UserInfo
tokenInfo token Config{..} = do
  resp <- liftIO $ post (T.unpack $ basePath <> "/tokeninfo") requestParams
  case AE.eitherDecode (resp ^. responseBody) of
    (Left  err) -> throwError $ T.pack $ show err
    (Right ui)  -> return ui
  where
    requestParams =
      [ "id_token" := ((getIdToken token) :: T.Text) 
      ]
    
-- | 
-- 
tokenInfo token Config{..} = do
  resp <- liftIO $ post (T.unpack $ basePath <> "/tokeninfo") requestParams
  case AE.eitherDecode (resp ^. responseBody) of
    (Left  err) -> throwError $ T.pack $ show err
    (Right ui)  -> return ui
  where
    requestParams =
      [ "id_token" := ((getIdToken token) :: T.Text) 
      ]
    
-- | 
-- 