Simple Authentification for 'shiny' Applications.
Simple authentification mechanism for single 'shiny' applications.
Provides a simple authentification and password change functionality are performed calling user provided functions that typically access some database backend.
Source code of main applications is protected until authentication is successful.
ATENTION: This project uses borrowed and modified (stripped and incomplete) code from ShinyManager which provides a more secure, extended, generic and completed authentication solution, please use it instead for stable applications.
Installation
Install from CRAN with :
install.packages("shinydbauth")
Or install development version from GitHub :
remotes::install_github("diegoefe/shinydbauth")
Usage
To run the sample application:
- Open a terminal (bash) and cd into demo.
- Choose database backend to use:
- For SQLite:
- cd to "db" and run mk_db.sh and go back:
$ cd db $ ./mk_db.sh $ cd ..
- look for users and passwords in sqlite.sql
- cd to "db" and run mk_db.sh and go back:
- For PostgreSQL:
- Create a database and two functions:
- fetch_user()
- update_user() Use the signatures for db_pg.R's queries
- Copy sample-auth.R to auth.R and set it up with correct values:
$ cp sample-auth.R auth.R $ vim auth.R
- Create a database and two functions:
- For SQLite:
- Open app.R and follow SETUP instructions
- Run the demo:
./launch_in_browser.sh
Available languages
- English
- Español
Password validity period
Using options("shinydbauth.pwd_validity")
, you can set password validity period. It defaults to Inf
. You can specify for example options("shinydbauth.pwd_validity" = 90)
if you want to force user changing password each 90 days.
Failure limit
Using options("shinydbauth.pwd_failure_limit")
, you can set password failure limit. It defaults to Inf. You can specify for example options("shinydbauth.pwd_failure_limit" = 5)
if you want to lock user account after 5 wrong password.
Relevant R documentation
require(shinydbauth)
# shiny integration
?secure_app
?create_server
?auth_ui # ui definition
# change labels / language
?set_labels
Customization
You can customize the module (css, image, language, ...).
?secure_app
?auth_ui
?set_labels