{"id":15047656,"url":"https://github.com/iljavaleev/simple_oauth2","last_synced_at":"2026-02-21T14:02:14.333Z","repository":{"id":256753856,"uuid":"855199384","full_name":"iljavaleev/simple_oauth2","owner":"iljavaleev","description":"Educational oauth2 implementation ","archived":false,"fork":false,"pushed_at":"2024-10-24T13:44:02.000Z","size":8207,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-08T06:40:41.434Z","etag":null,"topics":["cmake","cpp20","cpr","crowcpp","docker","inja","jwt-cpp","jwt-token","mongocxx","mongodb","nlohmann-json"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iljavaleev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-10T13:37:02.000Z","updated_at":"2024-10-24T13:44:08.000Z","dependencies_parsed_at":"2024-10-24T17:29:05.533Z","dependency_job_id":"dca4f0e6-417f-4e09-acbc-19ea53115054","html_url":"https://github.com/iljavaleev/simple_oauth2","commit_stats":null,"previous_names":["iljavaleev/simple_oauth2"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/iljavaleev/simple_oauth2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iljavaleev%2Fsimple_oauth2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iljavaleev%2Fsimple_oauth2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iljavaleev%2Fsimple_oauth2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iljavaleev%2Fsimple_oauth2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iljavaleev","download_url":"https://codeload.github.com/iljavaleev/simple_oauth2/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iljavaleev%2Fsimple_oauth2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279017767,"owners_count":26086145,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cmake","cpp20","cpr","crowcpp","docker","inja","jwt-cpp","jwt-token","mongocxx","mongodb","nlohmann-json"],"created_at":"2024-09-24T21:02:38.268Z","updated_at":"2025-10-14T03:33:20.012Z","avatar_url":"https://github.com/iljavaleev.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# simple_oauth2\n\n## Simple implementation of OAuth2 protocol inspired by book OAuth 2 in Action (Justin Richer (Author), Antonio Sanso).\nThe code was completely rewritten in C++, using MongoDB as the NoSQL database. HTML templates remained almost unchanged.\n\n### Description\nThere are three parts that interact with each other: the client (abstract application), the authentication server and protected resource.\nThe client redirects the user to the authentication server to gain access to the resource\nThe user decides whether to grant access permission to client and to what extent(scope). \nNext comes gaining access(receiving a token) and the ability to request data from the resource.\n\nAll three parts in different docker containers.\n\n## Run application\n### Run with Cmake\nFor example for client:\n```\ncd client\nmkdir build \u0026\u0026 cd build\ncmake ..\nmake\n./client \n```\nYou need to export envs from .cmake.env\n### Run  with docker compose\nIn infra path execute\n```\ndocker compose --env-file .env -f docker-compose.yml up -d\n```\nThere is image in docker hub for each part. If you want to build localy you can use generic Dockerfile in the infra path.\n\nNext you need to go to the http://localhost:9000 endpoint in the browser.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Filjavaleev%2Fsimple_oauth2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Filjavaleev%2Fsimple_oauth2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Filjavaleev%2Fsimple_oauth2/lists"}