summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-firebase-token-generator.spec303
-rw-r--r--sources1
3 files changed, 305 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..a87b58c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/firebase-token-generator-2.0.1.tar.gz
diff --git a/python-firebase-token-generator.spec b/python-firebase-token-generator.spec
new file mode 100644
index 0000000..2eb7a88
--- /dev/null
+++ b/python-firebase-token-generator.spec
@@ -0,0 +1,303 @@
+%global _empty_manifest_terminate_build 0
+Name: python-firebase-token-generator
+Version: 2.0.1
+Release: 1
+Summary: A utility to generate signed Firebase Authentication Tokens
+License: LICENSE
+URL: https://github.com/firebase/firebase-token-generator-python
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/36/f5/d09a193c1504eeb5bf80e7116628b60b8f9625b1565e2ca375dade9415bb/firebase-token-generator-2.0.1.tar.gz
+BuildArch: noarch
+
+
+%description
+# Firebase Token Generator - Python
+
+[Firebase Custom Login](https://www.firebase.com/docs/web/guide/simple-login/custom.html)
+gives you complete control over user authentication by allowing you to authenticate users
+with secure JSON Web Tokens (JWTs). The auth payload stored in those tokens is available
+for use in your Firebase [security rules](https://www.firebase.com/docs/security/api/rule/).
+This is a token generator library for Python which allows you to easily create those JWTs.
+
+
+## Installation
+
+The Firebase Python token generator library is available via pip:
+
+```bash
+$ pip install firebase-token-generator
+```
+
+## A Note About Security
+
+**IMPORTANT:** Because token generation requires your Firebase Secret, you should only generate
+tokens on *trusted servers*. Never embed your Firebase Secret directly into your application and
+never share your Firebase Secret with a connected client.
+
+
+## Generating Tokens
+
+To generate tokens, you'll need your Firebase Secret which you can find by entering your Firebase
+URL into a browser and clicking the "Secrets" tab on the left-hand navigation menu.
+
+Once you've downloaded the library and grabbed your Firebase Secret, you can generate a token with
+this snippet of Python code:
+
+```python
+from firebase_token_generator import create_token
+
+auth_payload = {"uid": "1", "auth_data": "foo", "other_auth_data": "bar"}
+token = create_token("<YOUR_FIREBASE_SECRET>", auth_payload)
+```
+
+The payload passed to `create_token()` is made available for use within your
+security rules via the [`auth` variable](https://www.firebase.com/docs/security/api/rule/auth.html).
+This is how you pass trusted authentication details (e.g. the client's user ID)
+to your Firebase security rules. The payload can contain any data of your
+choosing, however it must contain a "uid" key, which must be a string of less
+than 256 characters. The generated token must be less than 1024 characters in
+total.
+
+
+## Token Options
+
+A second `options` argument can be passed to `create_token()` to modify how Firebase treats the
+token. Available options are:
+
+* **expires** (int or datetime) - A timestamp (as number of seconds since the epoch) or `datetime`
+denoting the time after which this token should no longer be valid.
+
+* **notBefore** (int or datetime) - A timestamp (as number of seconds since the epoch) or `datetime`
+denoting the time before which this token should be rejected by the server.
+
+* **admin** (bool) - Set to `True` if you want to disable all security rules for this client. This
+will provide the client with read and write access to your entire Firebase.
+
+* **debug** (bool) - Set to `True` to enable debug output from your security rules. You should
+generally *not* leave this set to `True` in production (as it slows down the rules implementation
+and gives your users visibility into your rules), but it can be helpful for debugging.
+
+* **simulate** (bool) - If `True`, Firebase will run security rules but not actually make any
+data changes. Note that this is internal-only for now.
+
+Here is an example of how to use the second `options` argument:
+
+```python
+from firebase_token_generator import create_token
+
+auth_payload = {"uid": "1", "auth_data": "foo", "other_auth_data": "bar"}
+options = {"admin": True}
+token = create_token("<YOUR_FIREBASE_SECRET>", auth_payload, options)
+```
+
+%package -n python3-firebase-token-generator
+Summary: A utility to generate signed Firebase Authentication Tokens
+Provides: python-firebase-token-generator
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-firebase-token-generator
+# Firebase Token Generator - Python
+
+[Firebase Custom Login](https://www.firebase.com/docs/web/guide/simple-login/custom.html)
+gives you complete control over user authentication by allowing you to authenticate users
+with secure JSON Web Tokens (JWTs). The auth payload stored in those tokens is available
+for use in your Firebase [security rules](https://www.firebase.com/docs/security/api/rule/).
+This is a token generator library for Python which allows you to easily create those JWTs.
+
+
+## Installation
+
+The Firebase Python token generator library is available via pip:
+
+```bash
+$ pip install firebase-token-generator
+```
+
+## A Note About Security
+
+**IMPORTANT:** Because token generation requires your Firebase Secret, you should only generate
+tokens on *trusted servers*. Never embed your Firebase Secret directly into your application and
+never share your Firebase Secret with a connected client.
+
+
+## Generating Tokens
+
+To generate tokens, you'll need your Firebase Secret which you can find by entering your Firebase
+URL into a browser and clicking the "Secrets" tab on the left-hand navigation menu.
+
+Once you've downloaded the library and grabbed your Firebase Secret, you can generate a token with
+this snippet of Python code:
+
+```python
+from firebase_token_generator import create_token
+
+auth_payload = {"uid": "1", "auth_data": "foo", "other_auth_data": "bar"}
+token = create_token("<YOUR_FIREBASE_SECRET>", auth_payload)
+```
+
+The payload passed to `create_token()` is made available for use within your
+security rules via the [`auth` variable](https://www.firebase.com/docs/security/api/rule/auth.html).
+This is how you pass trusted authentication details (e.g. the client's user ID)
+to your Firebase security rules. The payload can contain any data of your
+choosing, however it must contain a "uid" key, which must be a string of less
+than 256 characters. The generated token must be less than 1024 characters in
+total.
+
+
+## Token Options
+
+A second `options` argument can be passed to `create_token()` to modify how Firebase treats the
+token. Available options are:
+
+* **expires** (int or datetime) - A timestamp (as number of seconds since the epoch) or `datetime`
+denoting the time after which this token should no longer be valid.
+
+* **notBefore** (int or datetime) - A timestamp (as number of seconds since the epoch) or `datetime`
+denoting the time before which this token should be rejected by the server.
+
+* **admin** (bool) - Set to `True` if you want to disable all security rules for this client. This
+will provide the client with read and write access to your entire Firebase.
+
+* **debug** (bool) - Set to `True` to enable debug output from your security rules. You should
+generally *not* leave this set to `True` in production (as it slows down the rules implementation
+and gives your users visibility into your rules), but it can be helpful for debugging.
+
+* **simulate** (bool) - If `True`, Firebase will run security rules but not actually make any
+data changes. Note that this is internal-only for now.
+
+Here is an example of how to use the second `options` argument:
+
+```python
+from firebase_token_generator import create_token
+
+auth_payload = {"uid": "1", "auth_data": "foo", "other_auth_data": "bar"}
+options = {"admin": True}
+token = create_token("<YOUR_FIREBASE_SECRET>", auth_payload, options)
+```
+
+%package help
+Summary: Development documents and examples for firebase-token-generator
+Provides: python3-firebase-token-generator-doc
+%description help
+# Firebase Token Generator - Python
+
+[Firebase Custom Login](https://www.firebase.com/docs/web/guide/simple-login/custom.html)
+gives you complete control over user authentication by allowing you to authenticate users
+with secure JSON Web Tokens (JWTs). The auth payload stored in those tokens is available
+for use in your Firebase [security rules](https://www.firebase.com/docs/security/api/rule/).
+This is a token generator library for Python which allows you to easily create those JWTs.
+
+
+## Installation
+
+The Firebase Python token generator library is available via pip:
+
+```bash
+$ pip install firebase-token-generator
+```
+
+## A Note About Security
+
+**IMPORTANT:** Because token generation requires your Firebase Secret, you should only generate
+tokens on *trusted servers*. Never embed your Firebase Secret directly into your application and
+never share your Firebase Secret with a connected client.
+
+
+## Generating Tokens
+
+To generate tokens, you'll need your Firebase Secret which you can find by entering your Firebase
+URL into a browser and clicking the "Secrets" tab on the left-hand navigation menu.
+
+Once you've downloaded the library and grabbed your Firebase Secret, you can generate a token with
+this snippet of Python code:
+
+```python
+from firebase_token_generator import create_token
+
+auth_payload = {"uid": "1", "auth_data": "foo", "other_auth_data": "bar"}
+token = create_token("<YOUR_FIREBASE_SECRET>", auth_payload)
+```
+
+The payload passed to `create_token()` is made available for use within your
+security rules via the [`auth` variable](https://www.firebase.com/docs/security/api/rule/auth.html).
+This is how you pass trusted authentication details (e.g. the client's user ID)
+to your Firebase security rules. The payload can contain any data of your
+choosing, however it must contain a "uid" key, which must be a string of less
+than 256 characters. The generated token must be less than 1024 characters in
+total.
+
+
+## Token Options
+
+A second `options` argument can be passed to `create_token()` to modify how Firebase treats the
+token. Available options are:
+
+* **expires** (int or datetime) - A timestamp (as number of seconds since the epoch) or `datetime`
+denoting the time after which this token should no longer be valid.
+
+* **notBefore** (int or datetime) - A timestamp (as number of seconds since the epoch) or `datetime`
+denoting the time before which this token should be rejected by the server.
+
+* **admin** (bool) - Set to `True` if you want to disable all security rules for this client. This
+will provide the client with read and write access to your entire Firebase.
+
+* **debug** (bool) - Set to `True` to enable debug output from your security rules. You should
+generally *not* leave this set to `True` in production (as it slows down the rules implementation
+and gives your users visibility into your rules), but it can be helpful for debugging.
+
+* **simulate** (bool) - If `True`, Firebase will run security rules but not actually make any
+data changes. Note that this is internal-only for now.
+
+Here is an example of how to use the second `options` argument:
+
+```python
+from firebase_token_generator import create_token
+
+auth_payload = {"uid": "1", "auth_data": "foo", "other_auth_data": "bar"}
+options = {"admin": True}
+token = create_token("<YOUR_FIREBASE_SECRET>", auth_payload, options)
+```
+
+%prep
+%autosetup -n firebase-token-generator-2.0.1
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-firebase-token-generator -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 2.0.1-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..1491e7d
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+7c8ab249e635aca10e8d4f21bb6d90c7 firebase-token-generator-2.0.1.tar.gz