# 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/f3/5f/c7e05b1bff3b75d383fcf2bace45cf72db115c3f781b720744ccc4d6683a/pycord_quart-0.1.0.tar.gz",
"platform": null,
"description": "# pycord-quart\r\nA pycord extension for Discord OAuth2 authentication in Quart applications.\r\n\r\n# Installation \r\nPython >= 3.10.x is required.\r\n```bash=\r\n# Windows\r\npip install --upgrade pycord-quart\r\n\r\n# Linux\r\npip3 install --upgrade pycord-quart\r\n```\r\n# Examples\r\n```py= \r\nfrom quart import Quart, request, session, redirect, url_for, jsonify\r\nfrom pycord.ipc import Client\r\nfrom pycord.quart import DiscordAuth, require_auth, get_current_user\r\n\r\napp = Quart(__name__)\r\nipc_client = Client(secret_key=<\"your IPCSecret\">, host=<\"your IPC Server IP\">, port=<\"your IPC Server Port\">)\r\n\r\napp.config[\"SECRET_KEY\"] = <\"your SecretKey\">\r\n\r\ndiscord_auth = DiscordAuth(\r\n client_id=<\"your DiscordClientID\">,\r\n client_secret=<\"your DiscordClientSecret\">,\r\n redirect_uri=<\"your DiscordRedirectURI\">,\r\n scopes=['identify', 'email', 'guilds'],\r\n)\r\n\r\n@app.route(\"/api/auth/login\", methods=[\"GET\"])\r\nasync def api_login():\r\n response = await discord_auth.login_handler()\r\n \r\n return jsonify(response.to_json), response.code\r\n\r\n@app.route(\"/api/auth/callback\", methods=[\"GET\"])\r\nasync def api_callback():\r\n response = await discord_auth.callback_handler()\r\n\r\n return jsonify(response.to_json), response.code\r\n\r\n@app.route(\"/api/auth/logout\", methods=[\"POST\"])\r\nasync def api_logout():\r\n response = await discord_auth.logout_handler()\r\n\r\n return jsonify(response.to_json), response.code\r\n\r\nif __name__ == \"__main__\":\r\n app.run(host=\"0.0.0.0\", port=8080, debug=True)\r\n```\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A pycord extension for Discord OAuth2 authentication in Quart applications.",
"version": "0.1.0",
"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": "b73390eecfcb3a3e7c0ebee8204fef8100fd2fe8addc30fb4a6ce1b3e8e0f011",
"md5": "8e4db33e51e6fb1488554833daa98472",
"sha256": "6b633c36b78cc51ec7aa1d766094909396c2b680138112fd58f05000e0f8eb73"
},
"downloads": -1,
"filename": "pycord_quart-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8e4db33e51e6fb1488554833daa98472",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 8813,
"upload_time": "2025-07-09T05:53:40",
"upload_time_iso_8601": "2025-07-09T05:53:40.546291Z",
"url": "https://files.pythonhosted.org/packages/b7/33/90eecfcb3a3e7c0ebee8204fef8100fd2fe8addc30fb4a6ce1b3e8e0f011/pycord_quart-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f35fc7e05b1bff3b75d383fcf2bace45cf72db115c3f781b720744ccc4d6683a",
"md5": "5be66f1b5f1e8a2cbcdd620ad555d35b",
"sha256": "486a21eb8fd5deaa9715a1adc94d2a2d11013f211c55d06a0063e9b1469494f7"
},
"downloads": -1,
"filename": "pycord_quart-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "5be66f1b5f1e8a2cbcdd620ad555d35b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 10491,
"upload_time": "2025-07-09T05:53:41",
"upload_time_iso_8601": "2025-07-09T05:53:41.893440Z",
"url": "https://files.pythonhosted.org/packages/f3/5f/c7e05b1bff3b75d383fcf2bace45cf72db115c3f781b720744ccc4d6683a/pycord_quart-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-09 05:53:41",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ParrotXray",
"github_project": "pycord-quart",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"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"
}