{"repo":"Mhr1375/MiniOAuth2","free":true,"listed":false,"github":"https://github.com/Mhr1375/MiniOAuth2","clone":"git clone https://github.com/Mhr1375/MiniOAuth2.git","description":"A lightweight, header-only C++20 library for OAuth 2.0 Authorization Code Flow with PKCE . built for Crow, usable anywhere.","language":"C++","stars":19,"topics":["cpp","cpp20","crowcpp","google-oauth","header-only","modern-cpp","oauth2","pkce"],"license":"MIT","category":"auth-billing-email","readme_excerpt":"MiniOAuth2 A header-only C++20 library for simplifying the OAuth 2.0 Authorization Code Flow with PKCE, designed with CrowCpp in mind, but usable independently. Author: Mhr1375 Features Header-Only: Easy integration, just include minioauth2.hpp . C++20: Uses modern C++ features. PKCE Support: Implements Proof Key for Code Exchange (RFC 7636) using SHA-256 ( S256 method) for enhanced security, especially for public clients (like native apps or SPAs). Helper Utilities: Includes functions for generating secure random strings ( state , code verifier ), URL-safe Base64 encoding/decoding, URL encoding/decoding, SHA-256 hashing (via embedded PicoSHA2), and building authorization/token request parameters. Optional JSON Parsing: Can use nlohmann/json (if MINIOAUTH2 USE NLOHMANN JSON is defined via CMake) to parse token responses and JWT payloads (ID tokens). Note: JWT parsing does not validate signatures or claims. Crow Example: Includes an example ( examples/google auth ) demonstrating usage with CrowCpp for a basic Google login flow. Dependencies Core Library: Requires a C++20 compliant compiler. Optionally uses nlohmann/json (fetched via CMake FetchContent ). Google Auth Example: CrowCpp (fetched via CMake FetchContent ). cpp-httplib (fetched via CMake FetchContent ) for making HTTP requests. OpenSSL: Required by cpp-httplib for HTTPS communication. Must be installed separately on the system and findable by CMake. Building This project uses CMake for building the library (as an INT","default_branch":null,"files":null,"tree":[],"storefront":"/r/Mhr1375","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Mhr1375/MiniOAuth2/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}