# pycord-quart
A pycord extension for Discord OAuth2 authentication in Quart applications.
# Installation
Python >= 3.10.x is required.
```bash=
# Windows
pip install --upgrade pycord-quart
# Linux
pip3 install --upgrade pycord-quart
```
# Examples
```py=
from quart import Quart, request, session, redirect, url_for, jsonify
from pycord.ipc import Client
from pycord.quart import DiscordAuth, require_auth, get_current_user
app = Quart(__name__)
ipc_client = Client(secret_key=<"your IPCSecret">, host=<"your IPC Server IP">, port=<"your IPC Server Port">)
app.config["SECRET_KEY"] = <"your SecretKey">
discord_auth = DiscordAuth(
client_id=<"your DiscordClientID">,
client_secret=<"your DiscordClientSecret">,
redirect_uri=<"your DiscordRedirectURI">,
scopes=['identify', 'email', 'guilds'],
)
@app.route("/api/auth/login", methods=["GET"])
async def api_login():
response = await discord_auth.login_handler()
return jsonify(response.to_json), response.code
@app.route("/api/auth/callback", methods=["GET"])
async def api_callback():
response = await discord_auth.callback_handler()
return jsonify(response.to_json), response.code
@app.route("/api/auth/logout", methods=["POST"])
async def api_logout():
response = await discord_auth.logout_handler()
return jsonify(response.to_json), response.code
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8080, debug=True)
```
Raw data
{
"_id": null,
"home_page": "https://github.com/ParrotXray/pycord-quart",
"name": "pycord-quart",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "discord, ipc, quart, websocket, asyncio, py-cord",
"author": "ParrotXray",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/dd/bc/d73566d3d3944dfb2fb4f3fd06bcec34af630d7b14c9747fda8ddd64087c/pycord_quart-0.1.3.tar.gz",
"platform": null,
"description": "# pycord-quart\nA pycord extension for Discord OAuth2 authentication in Quart applications.\n\n# Installation \nPython >= 3.10.x is required.\n```bash=\n# Windows\npip install --upgrade pycord-quart\n\n# Linux\npip3 install --upgrade pycord-quart\n```\n# Examples\n```py= \nfrom quart import Quart, request, session, redirect, url_for, jsonify\nfrom pycord.ipc import Client\nfrom pycord.quart import DiscordAuth, require_auth, get_current_user\n\napp = Quart(__name__)\nipc_client = Client(secret_key=<\"your IPCSecret\">, host=<\"your IPC Server IP\">, port=<\"your IPC Server Port\">)\n\napp.config[\"SECRET_KEY\"] = <\"your SecretKey\">\n\ndiscord_auth = DiscordAuth(\n client_id=<\"your DiscordClientID\">,\n client_secret=<\"your DiscordClientSecret\">,\n redirect_uri=<\"your DiscordRedirectURI\">,\n scopes=['identify', 'email', 'guilds'],\n)\n\n@app.route(\"/api/auth/login\", methods=[\"GET\"])\nasync def api_login():\n response = await discord_auth.login_handler()\n \n return jsonify(response.to_json), response.code\n\n@app.route(\"/api/auth/callback\", methods=[\"GET\"])\nasync def api_callback():\n response = await discord_auth.callback_handler()\n\n return jsonify(response.to_json), response.code\n\n@app.route(\"/api/auth/logout\", methods=[\"POST\"])\nasync def api_logout():\n response = await discord_auth.logout_handler()\n\n return jsonify(response.to_json), response.code\n\nif __name__ == \"__main__\":\n app.run(host=\"0.0.0.0\", port=8080, debug=True)\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A pycord extension for Discord OAuth2 authentication in Quart applications.",
"version": "0.1.3",
"project_urls": {
"Homepage": "https://github.com/ParrotXray/pycord-quart",
"Issue Tracker": "https://github.com/ParrotXray/pycord-quart/issues",
"Repository": "https://github.com/ParrotXray/pycord-quart",
"Source": "https://github.com/ParrotXray/pycord-quart"
},
"split_keywords": [
"discord",
" ipc",
" quart",
" websocket",
" asyncio",
" py-cord"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "8ae179554ce145db72db3be096e3eac29d2fd4d364c140fbfb648369794b256d",
"md5": "7f5f789e2a7032cd847d072d49ff64d3",
"sha256": "78b96c5a51023496a8d2af40c5f9e3f8da17b2ce77e74c3a22dd05b69c6fc07b"
},
"downloads": -1,
"filename": "pycord_quart-0.1.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7f5f789e2a7032cd847d072d49ff64d3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 8782,
"upload_time": "2025-07-23T10:15:55",
"upload_time_iso_8601": "2025-07-23T10:15:55.620765Z",
"url": "https://files.pythonhosted.org/packages/8a/e1/79554ce145db72db3be096e3eac29d2fd4d364c140fbfb648369794b256d/pycord_quart-0.1.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ddbcd73566d3d3944dfb2fb4f3fd06bcec34af630d7b14c9747fda8ddd64087c",
"md5": "885d96c70d83d8ef9e3bdf811082a27b",
"sha256": "39f9552dcfc6630bde789dca23cc82ad1f7b446bbc96e07ff2145595de39b235"
},
"downloads": -1,
"filename": "pycord_quart-0.1.3.tar.gz",
"has_sig": false,
"md5_digest": "885d96c70d83d8ef9e3bdf811082a27b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 10238,
"upload_time": "2025-07-23T10:15:56",
"upload_time_iso_8601": "2025-07-23T10:15:56.788389Z",
"url": "https://files.pythonhosted.org/packages/dd/bc/d73566d3d3944dfb2fb4f3fd06bcec34af630d7b14c9747fda8ddd64087c/pycord_quart-0.1.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-23 10:15:56",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ParrotXray",
"github_project": "pycord-quart",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "aiohttp",
"specs": []
},
{
"name": "typing-extensions",
"specs": []
},
{
"name": "py-cord",
"specs": []
},
{
"name": "pydantic",
"specs": []
},
{
"name": "quart-cors",
"specs": []
},
{
"name": "quart",
"specs": []
}
],
"lcname": "pycord-quart"
}