Skip to content

Modular Structure #2

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 11 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions localhost.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
-----BEGIN CERTIFICATE-----
MIIDDzCCAfegAwIBAgIUeheYrRpad428Bo7n3O4iSeDvl/wwDQYJKoZIhvcNAQEL
BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTI1MDIxNzE3MzExOFoXDTI1MDMx
OTE3MzExOFowFDESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEF
AAOCAQ8AMIIBCgKCAQEA14LBVxD5j3Rs0lqANYUoNHYPBGII1Z9Lh1SjEyapI857
JUYZm9VwVLqZJmcv8ppQeyE6nQOI+EvmMC7zy2w0us4hmayH93XEjyBgFv9KNifG
csLH9FDwJmBK1pyIoSgWE82GjuDJOA/ociuFoi5TjNgL1F4DpS7zOMA+OJcOW9B3
cWMT4F7oGLfnhrd+J1k/vsDGU047hivspFXKNBA1HpVyHC/nAIKUNZZkCaR0NjCI
zSGxQ19f2uG59J1jizlruk3y7UlvFskSGUocvRiNzPgsMpWplxwszqv0eEYV/Ber
HjaLnanEcF7zGEuGc2oMWziTmLPBQF4nKOlJGJsACwIDAQABo1kwVzAUBgNVHREE
DTALgglsb2NhbGhvc3QwCwYDVR0PBAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMB
MB0GA1UdDgQWBBRI2ZH2Clz43NSxOxxXxm7tBaUGdzANBgkqhkiG9w0BAQsFAAOC
AQEAryDWVc6VXTn4rV/BXdxLMj//0aqpzmjY8OE+LElqEijvUPlM5RJCteK/bi87
C8t02yDmaWnRuoblguusJayVDBSh3bxG6QjT+ijjTgOVDs30aOvTp3mxb34QYhox
+Mwg9IDrmqoSsXd9uNToBV4639IRmGSE/4yz/OTq+F1tlGpi8REhxIbmyN3ODExK
Uyp1wALTAR4koErqzruQ7vh7oWMNU3Mb6w6SizCe9K2oqMCQ8zCHSHKnP/eQn4Bo
6dzvX7HrTsJfbQKosMrDJQhi6QXZBE7DRzbY4vYpQ8E3HqvoAv9jBd1KrkXPMpN0
ORR43t6HviCz9puPh0kMkdGRIg==
-----END CERTIFICATE-----
28 changes: 28 additions & 0 deletions localhost.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDXgsFXEPmPdGzS
WoA1hSg0dg8EYgjVn0uHVKMTJqkjznslRhmb1XBUupkmZy/ymlB7ITqdA4j4S+Yw
LvPLbDS6ziGZrIf3dcSPIGAW/0o2J8Zywsf0UPAmYErWnIihKBYTzYaO4Mk4D+hy
K4WiLlOM2AvUXgOlLvM4wD44lw5b0HdxYxPgXugYt+eGt34nWT++wMZTTjuGK+yk
Vco0EDUelXIcL+cAgpQ1lmQJpHQ2MIjNIbFDX1/a4bn0nWOLOWu6TfLtSW8WyRIZ
Shy9GI3M+CwylamXHCzOq/R4RhX8F6seNoudqcRwXvMYS4ZzagxbOJOYs8FAXico
6UkYmwALAgMBAAECggEACf+SebgbY+jqXY3+Ub1WQqzRgIoNz99ekS4/jJVoFnWv
Z+jLKlwqJHwtu8bgxhgbsMK3Ze5yjdZznPuoquDfx2Tl0SvceQIZNuyxGJAKgN2y
isN3pGGW6qjf//nuKs/hylRoMDvEihnO1nEnd4E/thKV5engsGqvtQvSNyzm6SJ6
d/u5uFK7VQrWAkJ1+xCSTPPWi77CiMBh/qMY2Y6Ph0wYexQdNmS8np1cN7c5+N1b
evLSQAIiNUhXmVYY31z6oWHq+CYM/CRyWgDfQHFlUoBisIizzMptvDcvFi+7Rp22
qp1Lm6KNOPG7/nq/zDNSBfd1FqlaR/TcQDMtVUKaCQKBgQD7S+/NovCBnkhiEciU
GHGIvpfoyXO/UfiGKcf4WZCKfqlz9RNvzmuekRK1GAJzRnsO6HBeNwPasTHFIBJd
WZIJ4nJS681R/TTLfIPveKuo99F1iB2mZHDX9dkQS3ZlK7OuudVuE0xTcUoNAD0P
9zWcSoBrLrEToHYldtbq+FW8swKBgQDbi1qhNduMV/wq5SuEAntSraKdKcJho47R
MkNu3grg5sNNaMbQJhiO5KHBdfPefgQAqp0ZuYSMPg8GPnIrKN4nFegkBUWgjoi9
zAgfmdSaExo8gNe3S5J9wSEVpskVnDtLjS0FYcTOCLnNneiim8TGLKHXUpvWOTdt
wcfPCgGLSQKBgBFlk2dgBVhj1cz8QC+IdauqziductXm3daj49UcljYQSLjfWYYe
+zJSBsKEs/64/WHt04GiO2ETbUehTcQqpEKM668z5dXsOpBvwU59wxyCc3y4fJz9
TRaWTX2kS8D7QogxE0Z4jYslR6QYxSFq0spMGhHRfK7IKAW18XD42i6jAoGAMAZL
zPf7DrgwcTGwUzA3yd4xtC9uVe1xUFGubpIjzw6rqkNBOkcbGCbrO2aR8hmexoaL
1xS96e+pWbRPRSGrduFT5o1Ard6ACwSWwlLkLs/+7T1B8taVNO0KT7IsSo3iaqR3
NLYuVuORwWjJesiYQsGApZlsfXAGr/uzuZZ2wAECgYEAgB9QWsVzWHhbJ1YNK9qE
igWV4src1lRcwq3pN5iYLT6NXMvLZjPHOtEz5PRO4M85SwDlOG+82BWmDMNgFwoq
W+BC+xjRbqywT/7Acj0zS1GUm2gPqPt606b/H8L4WjENJO23C1iEF/brOb6GJKxy
WBfnsVRqocHJ/hHuLIdBvMQ=
-----END PRIVATE KEY-----
82 changes: 82 additions & 0 deletions packages/auth0-ai/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# Auth0 AI

This package provides base methods to use Auth0 with your AI use cases.

## Installation

```bash
pip install git+https://github.com/mustafadeel/auth0-ai-python.git@mod_struct#subdirectory=packages/auth0-ai
```

## Running Tests

1. **Install Dependencies**

Use [Poetry](https://python-poetry.org/) to install the required dependencies:

```sh
$ poetry install
```

2. **Run the tests**

```sh
$ poetry run pytest tests
```

## Usage

Create a .env file with the following deatils:

```
AUTH0_DOMAIN='<>'
AUTH0_CLIENT_ID='<>'
AUTH0_CLIENT_SECRET='<>'
AUTH0_REDIRECT_URI='<>'
AUTH0_SECRET_KEY='ALongRandomlyGeneratedString'
```

Create a python script for an interactive login, link and tool token example:

```python
from dotenv import find_dotenv, load_dotenv

import asyncio

from auth0_ai import AIAuth, User

ENV_FILE = find_dotenv()
if ENV_FILE:
load_dotenv(ENV_FILE)

auth_client = AIAuth()

async def login():
return await auth_client.interactive_login(connection="Username-Password-Authentication", scope="openid email offline_access")

async def link(user_id, connection):
linked = await auth_client.link(primary_user_id=user_id, connection=connection, scope="openid email")
return linked

user1 = asyncio.run(login())

print("-" * 20)
print("USER DETAILS:", auth_client.get_session(user1))

link_status = asyncio.run(user1.link(connection="github"))

github_token = user1.get_3rd_party_token("github")
```

---

<p align="center">
<picture>
<source media="(prefers-color-scheme: light)" srcset="https://cdn.auth0.com/website/sdks/logos/auth0_light_mode.png" width="150">
<source media="(prefers-color-scheme: dark)" srcset="https://cdn.auth0.com/website/sdks/logos/auth0_dark_mode.png" width="150">
<img alt="Auth0 Logo" src="https://cdn.auth0.com/website/sdks/logos/auth0_light_mode.png" width="150">
</picture>
</p>
<p align="center">Auth0 is an easy to implement, adaptable authentication and authorization platform. To learn more checkout <a href="https://auth0.com/why-auth0">Why Auth0?</a></p>
<p align="center">
This project is licensed under the Apache 2.0 license. See the <a href="/LICENSE"> LICENSE</a> file for more info.</p>
3 changes: 3 additions & 0 deletions packages/auth0-ai/auth0_ai/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from .ai_auth import AIAuth, User

__all__ = ["AIAuth", "User"]
Loading