{
    "componentChunkName": "component---src-templates-post-template-js",
    "path": "/posts/2026-07-07-python-fastapi-jwt-rotation-auth-demo/",
    "result": {"data":{"mdx":{"body":"var _excluded = [\"components\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {\n  \"title\": \"Python FastAPI with PostgreSQL JWT Authentication using Refresh Token Rotation\",\n  \"date\": \"2026-08-07T00:00:00.000Z\",\n  \"published\": false,\n  \"categories\": [\"FastAPI Authentication Use Cases\"],\n  \"tags\": [\"fastapi-authentication-use-cases\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"A production-ready starter project showcasing secure JWT authentication with Refresh Token Rotation. It includes OpenAPI / Swagger, SQLAlchemy, Alembic, PostgreSQL, and is hosted on Vercel Cloud with Serverless Functions using a GitHub-based CI/CD workflow\"), mdx(\"p\", null, \"The included Vue 3 SPA does not support silent authentication, and the users will also be logged out if refreshing the browser\"), mdx(\"p\", null, mdx(\"a\", {\n    href: \"https://fastapi-jwt-refresh-rotation-auth.vercel.app/docs\",\n    target: \"_blank\",\n    title: \"FastAPI by OpenAPI serving Auth by JWT with Refresh Token Rotation\"\n  }, \"Try the demo by OpenAPI...\")), mdx(\"p\", null, mdx(\"a\", {\n    href: \"https://vue.fastapi.jwt.rotation.auth.persteenolsen.com\",\n    target: \"_blank\",\n    title: \"FastAPI by Vue SPA serving Auth by JWT with Refresh Token Rotation\"\n  }, \"Try the demo by Vue 3 SPA...\")), mdx(\"p\", null, \"The project demonstrates how to build a secure REST API with FastAPI and PostgreSQL using modern JWT authentication, HTTPS, and automated database migrations\"), mdx(\"p\", null, \"CI/CD is implemented with VS Code, GitHub, and Vercel Cloud\"), mdx(\"p\", null, mdx(\"a\", {\n    href: \"https://github.com/persteenolsen/fastapi-jwt-refresh-rotation-auth\",\n    target: \"_blank\"\n  }, \"The Web API at GitHub\")), mdx(\"a\", {\n    href: \"https://github.com/persteenolsen/vue-fastapi-jwt-rotation-auth-client\",\n    target: \"_blank\"\n  }, \"The Vue SPA at GitHub\"));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"Python FastAPI with PostgreSQL JWT Authentication using Refresh Token Rotation","date":"07-August-2026","tags":["fastapi-authentication-use-cases"],"categories":["FastAPI Authentication Use Cases"]}}},"pageContext":{"id":"81ae38b8-5ed6-5e13-85c7-b00d11e40e1e"}},
    "staticQueryHashes": ["4278130389"]}