From dcc44e480dc988e0c70a9ed55da34e204216b587 Mon Sep 17 00:00:00 2001 From: ablogo Date: Fri, 10 Apr 2026 14:06:41 -0600 Subject: [PATCH 1/3] add health endpoint and OAuth2 documentation --- .gitignore | 50 +++++++++++++++++++++++++++----------------------- README.md | 26 +++++++++++++++++++++++--- src/main.py | 5 +++++ 3 files changed, 55 insertions(+), 26 deletions(-) diff --git a/.gitignore b/.gitignore index 22ab278..c07fcd4 100755 --- a/.gitignore +++ b/.gitignore @@ -1,55 +1,59 @@ -#General +# General *obj *bin *wwwroot -*.code-workspace -*.tmp -*.tmp_proj -*_wpftmp.csproj -*.log -.builds -.cache -*.pidb -*.svclog -*.scc -*.pfx *.pem -#Environment +# Nestjs specific +.next +/dist +/build + +# Logs +logs +*.log +npm-debug.log* +pnpm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# temp directory +.temp +.tmp + +# Environment files .env .venv env/ venv/ *.ini -#Docker +# Docker #*Dockerfile -#Kubernetes +# Kubernetes *kubernetes -#.NET Core +# .NET Core project.lock.json project.fragment.lock.json artifacts/ -#Python +# Python __pycache__/ *.manifest *.spec *py.cover -#Js -package-lock.json - -#VSCode +# VSCode *.vs *.vscode -#Expo +# Expo .expo -#npm +# npm *node_modules dist/ diff --git a/README.md b/README.md index f3c6f4a..e2b6a5d 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ It is a microservice for user administration and authenication, using JWT tokens - Google account and activate [Google cloud](https://console.cloud.google.com) to obtain OAuth2 config values (Optional) > [!IMPORTANT] -> It is necessary to complete the configuration file(.env), and create the PEM files and place them in the root folder +> It is necessary to complete the configuration file(.env), create the PEM files and place them in the root folder ## Installing 1. Create a virtual environment @@ -20,7 +20,7 @@ python -m venv .venv ```bash source .venv/bin/activate ``` - Activate it (Windows PowerShell) + (Windows PowerShell) ```bash .venv\Scripts\Activate.ps1 ``` @@ -53,7 +53,6 @@ http://127.0.0.1:8000/docs ``` ## Using with Docker - 1. Create the image ```bash docker build -t auth-service:latest . @@ -67,5 +66,26 @@ docker pull ghcr.io/ablogo/authfastapi:latest docker run -p 8000:80 --env-file .env auth-service:latest ``` +## Google OAuth2 +To implement this auth system, you need to obtain OAuth 2.0 credentials from the Google API Console. + +[Follow the steps on this page to obtain the credentials](https://developers.google.com/identity/protocols/oauth2) + +Once you have done this, you must place those values in the .env file. + +```bash +GOOGLE_OAUTH_ID= +GOOGLE_OAUTH_CLIENT= +GOOGLE_OAUTH_SECRET= +``` + +The following values should be customized based on your development, the scopes that you need and the links on your site. + +```bash +GOOGLE_OAUTH_REDIRECT_RESPONSE=https://127.0.0.1:8000/auth/google-response +GOOGLE_OAUTH_JS_ORIGINS=http://127.0.0.1:8000,http://localhost:8081 +GOOGLE_OAUTH_SCOPES=https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/userinfo.profile,openid +``` + > [!NOTE] > Since the project is used for learning, it does not strictly follow the concept of microservices, where each microservice should have its own realm of responsability and use different approaches. diff --git a/src/main.py b/src/main.py index 808cb36..f876648 100644 --- a/src/main.py +++ b/src/main.py @@ -48,4 +48,9 @@ async def shutdown(): #Root route @app.get("/") async def main(): + return "Learning python" + +#Root route +@app.get("/auth/health") +async def health(): return datetime.now() From 2b27007aab186e02410f9586d37e434d3ea68f51 Mon Sep 17 00:00:00 2001 From: ablogo Date: Fri, 10 Apr 2026 14:12:39 -0600 Subject: [PATCH 2/3] add rsa files to update docker image --- .gitignore | 2 +- private_key.pem | 52 +++++++++++++++++++++++++++++++++++++++++++++++++ public_key.pem | 14 +++++++++++++ 3 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 private_key.pem create mode 100644 public_key.pem diff --git a/.gitignore b/.gitignore index c07fcd4..6bfc4bb 100755 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,7 @@ *obj *bin *wwwroot -*.pem +#*.pem # Nestjs specific .next diff --git a/private_key.pem b/private_key.pem new file mode 100644 index 0000000..cd422c8 --- /dev/null +++ b/private_key.pem @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQCiExauD8lnm3Ik +zsmefQD/hKSEhCbHKfSaYZvY9TKkfIsS25mvcFjIY0bLj1MXFXrjqf4dj8HP2Mvi +ZroklFH1o91fz1wugq2QsMLlHqRcoXJ3kH5BqT1r544oPkP5flk4DPX3hHqdZDbh +r9xhY1daZ/tS447AK70LfSXD6YRrUo6m99EeyDDtZydktdnMEZroHSjalc2oDdLW +NJAJv1wZ57orsGv/PmVi986hNlrYCBatnhwB1h3lnbK49noxWFO/9kggnf6oRHT+ +oQBjV9NeulDX5MXUAhK84tSjlhclX9lKiP/jkgpnlOts2xIvUapigARsC9s4UFgX +qOVglnaeh5ThBmw9rAq5Nkzckfg/2HuZtdGFO5JpgBCTiFknUlnE00Kxt5IWeO7s +HGycv3B0/AdSQwinBsaI2cPOswyjlP8r+pn8byMoUFo1Qw49vBfoWFqdOAxWlGio +sHK8qI/4j63bNLGtLwPx4LkST75u7SKr8twYPhZp1RPHJauRRGlTDo+BlrvopsAj +rce8ACPbMt5HzxlhjBtBqqBS1ESgZ8LCagdc5IpPtwHE2IWjDlbz2kyPQ9e0YCZ+ +SKTVcZLcH6LPJuelDfZ9/3PfgFu8JifmDq5EzhT5aGyrJ5PZjI6/+c6tRBeKpB0s +bDHOZGsuryOrS0clklYSu1m//j12jQIDAQABAoICAAeyYPimkeAXnwdfdW5PRzco +Brx761ZSLqZCoQLGVjLYiHqk4iE72ra3FdTmu0GH4oLVGL1kc9KzW+KMq79Yw3Gn +NNHVe6FPBGYWkHlBoZJik/7yMwTBDREtEtbkNuWUzTDe8LL7k1HnjfGqBwzuIxpa +GmXYnhFc1ZWQZAHWetR/InyMahDZQ48qpgTGD0NKyYpg91OcgWk/MTZWxa/1nftl +W7WycAm6XiWhv6oJQxQqTviZkk2GBeJyWqfzai2Iuv8NRGY3V2SI57nZGupQClIs +n/IFkJC3NOOY4ODdG/Li7XzfXhbIR/7P5CqsI3dxNeaHaAf0VWNQ8XYIlJtBjTCt +SaPpRfpCxoEf/jyllIXsvBYfUwbxkkoUhs0dnDd+AVMxZ92kSyJ2cxwiEDKgGkV2 +w07xlpuVwBqyUdByFJkkNxQMSrRalWQhlaxm8fGixiWcY1SqzxMiGtCafpfV4kTa +AabqYRhn4K3IOYc74uQ271jaoxrCAaEawVbsTiLZ0mLG+kMmu/XAXxid298iNzLR +QSrwNYNx4tnpWLhyw0SKWpmDteMz+8i+vqLKtmpADRBCaTF9FTrRFST0E86Enwrb +d7jLJqjFZt7kAPiGG5mtRT0wLD/w2zBi3D6I9Vdqqqo/0ZxxYyxz1b/BprNR/BN5 +vcOXqYpJC7Cz/vCuEMSxAoIBAQDf7VG7BMp3ei5Cmn7noViVNVRAz/QVIGWYCVGS +SQlvnrxGeQxJy9PRVK3nHCPhGuWlTF2wLFhW+V3wFLp4UoGMqzeVEu1WcaESBAnm +N/hjaw2TL+LIS4Q5CUJHs1e8nd7VnzFLKLZMci7gk727L71O9Su7o4/WrTp38kAN +CJacVmqlfWXUG+VUvkubuOZ4Pf62+rjNSTVcMaxAkczcYK3ydyBNZHiNS67jYvb+ +QlqAvCBnEZXE8Jfhe7POz0opW2vWOJ409mRXn1r1niLQzR6P9IhoQJJ6rZ24rfdx +YdrAtUw4a3d9PS8191BjycarzeeWUQN1wVK20P2EEVZe3CVpAoIBAQC5Sdbc5Xoq +/B+FE3rwM1P3HUVmCj0+IcOEMqbLtz2kadDP2l1WFlBX1aYB1C/Vuw5k560tXvqN +YP/Xr48X0q8dLYMV5q8da1064ax5xTAwacTrqq2xLMCXeM7Fy0C5M+JyGdcbwBeq +ZBbXkaVvYFoIBpQ6vqYa5iUTNrGLQubJkJWRIi/Qawz1PKYJ+Ss/xDdvtVDbj4hi +0ecgOP/2BZ0PXNXQ6a/l2ZWv4eVbXEAqftebJvqGneFekQaiiW8/XocSBK0X/Sc1 +WqAEhkK8wcVRZMVptIyetIA+ldBT50LYNrgPimQT7IHkQ9E1SbBcL38HSHL94/Wz +mpaemVHkSe+FAoIBAQCfx6vY4XtCs2jM14aT6tnVZb8fnALTDFHRoVyWIA1emwpG +0trE0W7r4BtSXA7x8YpJX2s+aPYD4V15EKFZd62+3PEFKwM0+lFvFHinz+oprlp6 +WuHb/55yQDwOA1coXBGDplq7AWrKs3LlhiYMqezPqTsyYWwiR2r/6VhwtF8bYMIq +IYcGSX1i8YHrtIym4b2dfNteh81OYpdBX4eo/EdCSmQ/NOCcGZPJ5nTNSjVfxFzu +jmqqou4M04Kin+CQEA6rRa0Fp4ZDy45Q0iyPhr03BMpMcT7T0IxJGcEFI0i+1t5z +J6OUNpM4U6cF/RUIxBxqcpYgcPh/QDKVCPXzK+x5AoIBADEIYEq+k3DSnYi62fq8 +qoinf1j8dq59gt72BHu+dxqOQgrvL2n7p7FGwZKUU0BNKwb65DIwgz9snue19rkI +MP0YsSrXjBnN8rMFS35B93moU8tFtIdBX4n2F0nyeqNIHrGxMuKOF/UoXX8YdN4f +clPTYeCV2SEfLEqEW8GNp8NJdrscf+i4m4o+TXYwMQjD5SOzqL0ho6b7Ax3c16eE +XsbU+2Q4oyrBRMJxlh9yLyzPukC9tOhw2VYMLORQWFc9raLQB/pkLL8Kx3PLD9gh +sxTSBQfvFpNdEt79CE9b0K2k9VpvdgJrwQfmBnQClyAeFZCY1I1piPjJfPhlfG1c +P30CggEBANzud6U9dZz7ot7LaYbYqAmquQyollNZgOv0+Do1Em7YzFpdc7mFX9jx +SixYVknJqVhK8znfgZe01eXTbVb4rgbQjmfwhBPFL1jkc6ngVJ3jXSeZsy7eWuCL +emXFFoKmmdAF/U4oD8TCoizL7Dc/KjkamLzQ3xUHjH+vRTjS2A1Fzw4j4grQzeqG +GRgu3NAf5Vn5WL7464S/dAghj4UxJvajVcUpcnUSovuwwPQGi2ePaGfEL7kQHI4H +olHN7sYpyqhYR3ujhp2iDEWciO6q5oUjWB+6l/yhFNObeke+uFAp6BGN58FMjO28 +f/dzmV03GDhf4roXy3qQV5Zu/0CRZUE= +-----END PRIVATE KEY----- diff --git a/public_key.pem b/public_key.pem new file mode 100644 index 0000000..3c31913 --- /dev/null +++ b/public_key.pem @@ -0,0 +1,14 @@ +-----BEGIN PUBLIC KEY----- +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAohMWrg/JZ5tyJM7Jnn0A +/4SkhIQmxyn0mmGb2PUypHyLEtuZr3BYyGNGy49TFxV646n+HY/Bz9jL4ma6JJRR +9aPdX89cLoKtkLDC5R6kXKFyd5B+Qak9a+eOKD5D+X5ZOAz194R6nWQ24a/cYWNX +Wmf7UuOOwCu9C30lw+mEa1KOpvfRHsgw7WcnZLXZzBGa6B0o2pXNqA3S1jSQCb9c +Gee6K7Br/z5lYvfOoTZa2AgWrZ4cAdYd5Z2yuPZ6MVhTv/ZIIJ3+qER0/qEAY1fT +XrpQ1+TF1AISvOLUo5YXJV/ZSoj/45IKZ5TrbNsSL1GqYoAEbAvbOFBYF6jlYJZ2 +noeU4QZsPawKuTZM3JH4P9h7mbXRhTuSaYAQk4hZJ1JZxNNCsbeSFnju7BxsnL9w +dPwHUkMIpwbGiNnDzrMMo5T/K/qZ/G8jKFBaNUMOPbwX6FhanTgMVpRoqLByvKiP ++I+t2zSxrS8D8eC5Ek++bu0iq/LcGD4WadUTxyWrkURpUw6PgZa76KbAI63HvAAj +2zLeR88ZYYwbQaqgUtREoGfCwmoHXOSKT7cBxNiFow5W89pMj0PXtGAmfkik1XGS +3B+izybnpQ32ff9z34BbvCYn5g6uRM4U+WhsqyeT2YyOv/nOrUQXiqQdLGwxzmRr +Lq8jq0tHJZJWErtZv/49do0CAwEAAQ== +-----END PUBLIC KEY----- From 87dc450e3155af6aae2d7e9642d3d7c6895a8183 Mon Sep 17 00:00:00 2001 From: ablogo Date: Fri, 10 Apr 2026 14:14:07 -0600 Subject: [PATCH 3/3] restore .gitignore file --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 6bfc4bb..c07fcd4 100755 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,7 @@ *obj *bin *wwwroot -#*.pem +*.pem # Nestjs specific .next