Skip to main content

A Python package that provides WordPress authentication for Streamlit applications.

Project description

WordPress Authentication for Streamlit

  • Please note that in order to use this package, you need a WordPress website that supports the JWT Authentication plugin. To get started, you will first need to install the WordPress Plugin. Here is the GitHub page where you can find the WordPress Plugin: WordPress Streamlit Integration Plugin

After installing the WordPress Plugin, you can proceed with the installation of the Python

This Python package allows users of a Streamlit app to authenticate with a WordPress website via JSON Web Tokens (JWT).

Installation

Install the package via pip:

pip install wordpress-auth

First, you need to create an instance of the WordpressAuth class. You'll need to provide your API keys and the base URL of your WordPress site:

from wordpress_auth import WordpressAuth

auth = WordpressAuth(api_key='YOUR_API_KEY', base_url='https://yourwordpressurl.com')

Now, you can use the get_token and verify_token methods to retrieve and verify a token:

token = auth.get_token(username, password)
if token and auth.verify_token(token):
    # The user is authenticated.

Integration into a Streamlit App You can use this package in a Streamlit app to create a login form:

import streamlit as st
from wordpress_auth import WordpressAuth

# Set your WordPress site base URL and API key here.
auth = WordpressAuth(api_key='YOUR_API_KEY', base_url='https://yourwordpressurl.com')

def main():
    st.write("This is the main page of the application.")  # Your main code goes here

# Check if the user is already logged in
if 'token' in st.session_state and auth.verify_token(st.session_state['token']):
    main()  # Call the main function
else:
    # Show the login form
    with st.form(key='login_form'):
        st.title("Please log in")
        username = st.text_input('Username')
        password = st.text_input('Password', type='password')
        submit_button = st.form_submit_button(label='Log in')

        if submit_button:
            token = auth.get_token(username, password)
            if token and auth.verify_token(token):
                st.session_state['token'] = token  # We store the token in the session state
                st.experimental_rerun()  # Reload the page so that the login form disappears
            else:
                st.error('Access denied')

Please note that in order to use this package, you need a WordPress website that supports the JWT Authentication plugin. You also need to have a valid API key.

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Contact

For any queries or suggestions, feel free to contact me:

Keyvan Hardani Email: hello@keyvan.ai GitHub: https://github.com/Keyvanhardani/streamlit-wordpress-authentication Please ensure to replace all placeholder text with actual values.WordPress Authentication for Streamlit This Python package allows users of a Streamlit app to authenticate with a WordPress website via JSON Web Tokens (JWT).

Installation

Install the package via pip:

pip install wordpress-auth

First, you need to create an instance of the WordpressAuth class. You'll need to provide your API keys and the base URL of your WordPress site:

from wordpress_auth import WordpressAuth

auth = WordpressAuth(api_key='YOUR_API_KEY', base_url='https://yourwordpressurl.com')

Now, you can use the get_token and verify_token methods to retrieve and verify a token:

token = auth.get_token(username, password)
if token and auth.verify_token(token):
    # The user is authenticated.

Integration into a Streamlit App You can use this package in a Streamlit app to create a login form:

import streamlit as st
from wordpress_auth import WordpressAuth

# Set your WordPress site base URL and API key here.
auth = WordpressAuth(api_key='YOUR_API_KEY', base_url='https://yourwordpressurl.com')

def main():
    st.write("This is the main page of the application.")  # Your main code goes here

# Check if the user is already logged in
if 'token' in st.session_state and auth.verify_token(st.session_state['token']):
    main()  # Call the main function
else:
    # Show the login form
    with st.form(key='login_form'):
        st.title("Please log in")
        username = st.text_input('Username')
        password = st.text_input('Password', type='password')
        submit_button = st.form_submit_button(label='Log in')

        if submit_button:
            token = auth.get_token(username, password)
            if token and auth.verify_token(token):
                st.session_state['token'] = token  # We store the token in the session state
                st.experimental_rerun()  # Reload the page so that the login form disappears
            else:
                st.error('Access denied')

Please note that in order to use this package, you need a WordPress website that supports the JWT Authentication plugin. You also need to have a valid API key.

License This project is licensed under the MIT License - see the LICENSE.md file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wordpress-auth-0.1.0.tar.gz (3.0 kB view details)

Uploaded Source

File details

Details for the file wordpress-auth-0.1.0.tar.gz.

File metadata

  • Download URL: wordpress-auth-0.1.0.tar.gz
  • Upload date:
  • Size: 3.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for wordpress-auth-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a76114df6b5fcbac217df40b0317f590da56378f19f9566d89d3dc20409b9ccc
MD5 365fbe0de9d86916095fc68781fc2014
BLAKE2b-256 b9100b173c514854aacb1031d4b4aef4f69f8c7f935ff5efe957bfa3e0d8b7d4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page