From 0c1016433d0d5d5c5a1620ad7de4b86d4e18d16d Mon Sep 17 00:00:00 2001 From: andyquinterom Date: Tue, 22 Oct 2024 15:10:29 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20ixpantia?= =?UTF-8?q?/tapLock@f2bae66a63d336a2bc481e5770b5b1659ae4dc0d=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- authors.html | 4 ++-- index.html | 4 ++-- pkgdown.yml | 2 +- search.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/authors.html b/authors.html index d98fead..6c713d1 100644 --- a/authors.html +++ b/authors.html @@ -54,11 +54,11 @@

Citation

Source: DESCRIPTION

Quintero A (2024). -tapLock: Seamless Single Sign-On for 'shiny'. +tapLock: Seamless Single Sign-on for 'shiny'. R package version 0.2.0, https://github.com/ixpantia/tapLock.

@Manual{,
-  title = {tapLock: Seamless Single Sign-On for 'shiny'},
+  title = {tapLock: Seamless Single Sign-on for 'shiny'},
   author = {Andres Quintero},
   year = {2024},
   note = {R package version 0.2.0},
diff --git a/index.html b/index.html
index b78b8d4..31b9b33 100644
--- a/index.html
+++ b/index.html
@@ -5,12 +5,12 @@
 
 
 
-Seamless Single Sign-On for shiny • tapLock
+Seamless Single Sign-on for shiny • tapLock
 
 
 
 
-
+
 
 
 
diff --git a/pkgdown.yml b/pkgdown.yml
index 9275d26..36a2846 100644
--- a/pkgdown.yml
+++ b/pkgdown.yml
@@ -4,7 +4,7 @@ pkgdown_sha: ~
 articles:
   en_securing_shiny_google: en_securing_shiny_google.html
   es_asegura_shiny_con_google: es_asegura_shiny_con_google.html
-last_built: 2024-10-22T02:30Z
+last_built: 2024-10-22T15:10Z
 urls:
   reference: https://maurolepore.github.io/tapLock/reference
   article: https://maurolepore.github.io/tapLock/articles
diff --git a/search.json b/search.json
index 9ad1a9d..89eec9b 100644
--- a/search.json
+++ b/search.json
@@ -1 +1 @@
-[{"path":"https://maurolepore.github.io/tapLock/LICENSE.html","id":null,"dir":"","previous_headings":"","what":"MIT License","title":"MIT License","text":"Copyright (c) 2024 tapLock authors Permission hereby granted, free charge, person obtaining copy software associated documentation files (“Software”), deal Software without restriction, including without limitation rights use, copy, modify, merge, publish, distribute, sublicense, /sell copies Software, permit persons Software furnished , subject following conditions: copyright notice permission notice shall included copies substantial portions Software. SOFTWARE PROVIDED “”, WITHOUT WARRANTY KIND, EXPRESS IMPLIED, INCLUDING LIMITED WARRANTIES MERCHANTABILITY, FITNESS PARTICULAR PURPOSE NONINFRINGEMENT. EVENT SHALL AUTHORS COPYRIGHT HOLDERS LIABLE CLAIM, DAMAGES LIABILITY, WHETHER ACTION CONTRACT, TORT OTHERWISE, ARISING , CONNECTION SOFTWARE USE DEALINGS SOFTWARE.","code":""},{"path":"https://maurolepore.github.io/tapLock/articles/en_securing_shiny_google.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"(English) Securing Shiny with Google Auth","text":"vignette provides step--step tutorial secure Shiny application using Google authentication tapLock R package. tapLock simplifies integration OpenID Connect OAuth 2.0 Shiny applications, ensuring robust security minimal coding effort.","code":""},{"path":"https://maurolepore.github.io/tapLock/articles/en_securing_shiny_google.html","id":"prerequisites","dir":"Articles","previous_headings":"","what":"Prerequisites","title":"(English) Securing Shiny with Google Auth","text":"proceeding, ensure following: - basic understanding R Shiny. - Shiny application ready deployment. - Access Google Developer Console OAuth credentials. - (Optional) server HTTPS enabled.","code":""},{"path":"https://maurolepore.github.io/tapLock/articles/en_securing_shiny_google.html","id":"step-1-install-taplock","dir":"Articles","previous_headings":"","what":"Step 1: Install tapLock","title":"(English) Securing Shiny with Google Auth","text":"Install tapLock GitHub using pak package:","code":"install.packages(\"tapLock\")"},{"path":"https://maurolepore.github.io/tapLock/articles/en_securing_shiny_google.html","id":"step-2-create-google-oauth-credentials","dir":"Articles","previous_headings":"","what":"Step 2: Create Google OAuth Credentials","title":"(English) Securing Shiny with Google Auth","text":"Go Google Developer Console. Create new project select existing one. Navigate ‘Credentials’ create ‘OAuth client ID’ credentials. Set Authorized JavaScript origins Shiny application URL. Set Authorized redirect URIs Shiny application URL suffix /login. Note client_id client_secret.","code":""},{"path":"https://maurolepore.github.io/tapLock/articles/en_securing_shiny_google.html","id":"step-3-configure-authentication-in-r","dir":"Articles","previous_headings":"","what":"Step 3: Configure Authentication in R","title":"(English) Securing Shiny with Google Auth","text":"Load tapLock set authentication configuration: Replace GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, SHINY_APP_URL actual credentials application URL environment variables.","code":"library(taplock)  auth_config <- new_openid_config(   provider = \"google\",   client_id = Sys.getenv(\"GOOGLE_CLIENT_ID\"),   client_secret = Sys.getenv(\"GOOGLE_CLIENT_SECRET\"),   app_url = Sys.getenv(\"SHINY_APP_URL\") )"},{"path":"https://maurolepore.github.io/tapLock/articles/en_securing_shiny_google.html","id":"step-4-modify-shiny-application","dir":"Articles","previous_headings":"","what":"Step 4: Modify Shiny Application","title":"(English) Securing Shiny with Google Auth","text":"Modify Shiny app use sso_shiny_app:","code":"library(shiny) library(tapLock)  # Authentication configuration auth_config <- new_openid_config(   provider = \"google\",   client_id = Sys.getenv(\"GOOGLE_CLIENT_ID\"),   client_secret = Sys.getenv(\"GOOGLE_CLIENT_SECRET\"),   app_url = Sys.getenv(\"SHINY_APP_URL\") )  # UI ui <- fluidPage(   tags$h1(\"Welcome to the Secure Shiny App\"),   textOutput(\"userInfo\") )  # Server server <- function(input, output, session) {   output$userInfo <- renderText({     user_email <- get_token_field(token(), \"email\")     glue::glue(\"Logged in as: {user_email}\")   }) }  # Secure Shiny app with tapLock sso_shiny_app(auth_config, ui, server)"},{"path":"https://maurolepore.github.io/tapLock/articles/en_securing_shiny_google.html","id":"step-5-deploy-the-application","dir":"Articles","previous_headings":"","what":"Step 5: Deploy the Application","title":"(English) Securing Shiny with Google Auth","text":"Deploy Shiny application normally . tapLock package handles authentication process. recommend deploying application solution like Shiny Server (Open Source Pro) faucet. Solutions like Posit Connect already include authentication require tapLock.","code":""},{"path":"https://maurolepore.github.io/tapLock/articles/en_securing_shiny_google.html","id":"conclusion","dir":"Articles","previous_headings":"","what":"Conclusion","title":"(English) Securing Shiny with Google Auth","text":"following steps, successfully secured Shiny application Google authentication using tapLock. ensures authenticated users can access application, enhancing security privacy.","code":""},{"path":"https://maurolepore.github.io/tapLock/articles/es_asegura_shiny_con_google.html","id":"introducción","dir":"Articles","previous_headings":"","what":"Introducción","title":"(Español) Asegurando Shiny con Google Auth","text":"Esta viñeta proporciona un tutorial paso paso sobre cómo asegurar una aplicación Shiny utilizando la autenticación de Google través del paquete R tapLock. tapLock simplifica la integración de OpenID Connect y OAuth 2.0 en aplicaciones Shiny, asegurando una robusta seguridad con un esfuerzo mínimo de codificación.","code":""},{"path":"https://maurolepore.github.io/tapLock/articles/es_asegura_shiny_con_google.html","id":"prerrequisitos","dir":"Articles","previous_headings":"","what":"Prerrequisitos","title":"(Español) Asegurando Shiny con Google Auth","text":"Antes de proceder, asegúrate de tener lo siguiente: - Un conocimiento básico de R y Shiny. - Una aplicación Shiny lista para ser desplegada. - Acceso Google Developer Console para las credenciales OAuth. - (Opcional) Un servidor con HTTPS habilitado.","code":""},{"path":"https://maurolepore.github.io/tapLock/articles/es_asegura_shiny_con_google.html","id":"paso-1-instalar-taplock","dir":"Articles","previous_headings":"","what":"Paso 1: Instalar tapLock","title":"(Español) Asegurando Shiny con Google Auth","text":"Instala tapLock desde GitHub usando el paquete pak:","code":"install.packages(\"tapLock\")"},{"path":"https://maurolepore.github.io/tapLock/articles/es_asegura_shiny_con_google.html","id":"paso-2-crear-credenciales-oauth-de-google","dir":"Articles","previous_headings":"","what":"Paso 2: Crear Credenciales OAuth de Google","title":"(Español) Asegurando Shiny con Google Auth","text":"Ve Google Developer Console. Crea un nuevo proyecto o selecciona uno existente. Navega ‘Credenciales’ y crea credenciales ‘OAuth client ID’. Establece los Authorized JavaScript origins en la URL de tu aplicación Shiny. Establece los Authorized redirect URIs en la URL de tu aplicación Shiny con el sufijo /login. Anota el client_id y el client_secret.","code":""},{"path":"https://maurolepore.github.io/tapLock/articles/es_asegura_shiny_con_google.html","id":"paso-3-configurar-autenticación-en-r","dir":"Articles","previous_headings":"","what":"Paso 3: Configurar Autenticación en R","title":"(Español) Asegurando Shiny con Google Auth","text":"Carga tapLock y configura la autenticación: Reemplaza GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, y SHINY_APP_URL con tus credenciales reales y la URL de tu aplicación en tus variables de entorno.","code":"library(taplock)  auth_config <- new_openid_config(   provider = \"google\",   client_id = Sys.getenv(\"GOOGLE_CLIENT_ID\"),   client_secret = Sys.getenv(\"GOOGLE_CLIENT_SECRET\"),   app_url = Sys.getenv(\"SHINY_APP_URL\") )"},{"path":"https://maurolepore.github.io/tapLock/articles/es_asegura_shiny_con_google.html","id":"paso-4-modificar-aplicación-shiny","dir":"Articles","previous_headings":"","what":"Paso 4: Modificar Aplicación Shiny","title":"(Español) Asegurando Shiny con Google Auth","text":"Modifica tu aplicación Shiny para usar sso_shiny_app:","code":"library(shiny) library(tapLock)  # Configuración de autenticación auth_config <- new_openid_config(   provider = \"google\",   client_id = Sys.getenv(\"GOOGLE_CLIENT_ID\"),   client_secret = Sys.getenv(\"GOOGLE_CLIENT_SECRET\"),   app_url = Sys.getenv(\"SHINY_APP_URL\") )  # UI ui <- fluidPage(   tags$h1(\"Bienvenido a la Aplicación Shiny Segura\"),   textOutput(\"userInfo\") )  # Server server <- function(input, output, session) {   output$userInfo <- renderText({     user_email <- get_token_field(token(), \"email\")     glue::glue(\"Conectado como: {user_email}\")   }) }  # Asegurar aplicación Shiny con tapLock sso_shiny_app(auth_config, ui, server)"},{"path":"https://maurolepore.github.io/tapLock/articles/es_asegura_shiny_con_google.html","id":"paso-5-desplegar-la-aplicación","dir":"Articles","previous_headings":"","what":"Paso 5: Desplegar la Aplicación","title":"(Español) Asegurando Shiny con Google Auth","text":"Despliega tu aplicación Shiny como lo harías normalmente. El paquete tapLock maneja el proceso de autenticación. Recomendamos desplegar tu aplicación con una solución como Shiny Server (Open Source o Pro) o con faucet. Soluciones como Posit Connect ya incluyen autenticación y requieren tapLock.","code":""},{"path":"https://maurolepore.github.io/tapLock/articles/es_asegura_shiny_con_google.html","id":"conclusión","dir":"Articles","previous_headings":"","what":"Conclusión","title":"(Español) Asegurando Shiny con Google Auth","text":"Siguiendo estos pasos, asegurado con éxito tu aplicación Shiny con autenticación de Google utilizando tapLock. Esto asegura que solo los usuarios autenticados puedan acceder tu aplicación, mejorando su seguridad y privacidad.","code":""},{"path":"https://maurolepore.github.io/tapLock/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"ixpantia, SRL. Copyright holder. Andres Quintero. Author, maintainer.","code":""},{"path":"https://maurolepore.github.io/tapLock/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Quintero (2024). tapLock: Seamless Single Sign-'shiny'. R package version 0.2.0, https://github.com/ixpantia/tapLock.","code":"@Manual{,   title = {tapLock: Seamless Single Sign-On for 'shiny'},   author = {Andres Quintero},   year = {2024},   note = {R package version 0.2.0},   url = {https://github.com/ixpantia/tapLock}, }"},{"path":"https://maurolepore.github.io/tapLock/index.html","id":"taplock-","dir":"","previous_headings":"","what":"Seamless Single Sign-On for shiny","title":"Seamless Single Sign-On for shiny","text":"goal tapLock secure R applications OpenID Connect OAuth 2.0. tapLock R library provides simple interface integrate OpenID Connect / OAuth 2.0 authentication Shiny applications Plumber APIs. tapLock uses unique approach effectively secure applications without need write almost code.","code":""},{"path":"https://maurolepore.github.io/tapLock/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Seamless Single Sign-On for shiny","text":"can install tapLock CRAN : can install development version tapLock GitHub :","code":"install.packages(\"tapLock\") # install.packages(\"pak\") pak::pak(\"ixpantia/tapLock\")"},{"path":[]},{"path":"https://maurolepore.github.io/tapLock/index.html","id":"id_1-create-an-authentication-configuration","dir":"","previous_headings":"Example","what":"1. Create an authentication configuration","title":"Seamless Single Sign-On for shiny","text":"","code":"library(taplock)  auth_config <- new_openid_config(   provider = \"google\",   client_id = Sys.getenv(\"CLIENT_ID\"),   client_secret = Sys.getenv(\"CLIENT_SECRET\"),   app_url = Sys.getenv(\"APP_URL\") )"},{"path":"https://maurolepore.github.io/tapLock/index.html","id":"id_2-secure-your-shiny-application","dir":"","previous_headings":"Example","what":"2. Secure your Shiny application","title":"Seamless Single Sign-On for shiny","text":"secure Shiny Application need add middleware layers using tower configure client credentials. example Shiny application uses tapLock secure :","code":"library(shiny) library(tapLock)  auth_config <- new_openid_config(   provider = \"google\",   client_id = Sys.getenv(\"CLIENT_ID\"),   client_secret = Sys.getenv(\"CLIENT_SECRET\"),   app_url = Sys.getenv(\"APP_URL\") )  ui <- fluidPage(   tags$h1(\"r.sso example\"),   uiOutput(\"profile\"),   textOutput(\"user\") )  server <- function(input, output, session) {     output$profile <- renderUI({     tags$img(src = get_token_field(token(), \"picture\"))   })    output$user <- renderText({     given_name <- get_token_field(token(), \"given_name\")     family_name <- get_token_field(token(), \"family_name\")     expires_at <- expires_at(token())     glue::glue(       \"Hello {given_name} {family_name}!\",       \"Your authenticated session will expire at {expires_at}.\",       .sep = \" \"     )   }) |>     bindEvent(TRUE)  } shinyApp(ui, server) |>   tower::create_tower() |>   tapLock::add_auth_layers(auth_config) |>   tower::build_tower()"},{"path":"https://maurolepore.github.io/tapLock/index.html","id":"authentication-providers","dir":"","previous_headings":"","what":"Authentication providers","title":"Seamless Single Sign-On for shiny","text":"tapLock supports following authentication providers: Google Microsoft Entra ID need support providers, please contact us hola@ixpantia.com. , developer, can contribute project adding support additional providers.","code":""},{"path":"https://maurolepore.github.io/tapLock/index.html","id":"security-model","dir":"","previous_headings":"","what":"Security Model","title":"Seamless Single Sign-On for shiny","text":"tapLock unique approach securing Shiny applications. tapLock utilizes middlewares intercept incoming requests (HTTP WebSocket requests) validates authentication token. approach allows tapLock lean efficient since expensive WebSocket connections started user authenticated. also prevents sensitive data UI portion application exposed unauthenticated users.","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/add_auth_layers.html","id":null,"dir":"Reference","previous_headings":"","what":"Add authentication middle ware to a 'tower' object — add_auth_layers","title":"Add authentication middle ware to a 'tower' object — add_auth_layers","text":"Attaches necessary authentication layers 'tower' object. secure layer added .","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/add_auth_layers.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add authentication middle ware to a 'tower' object — add_auth_layers","text":"","code":"add_auth_layers(tower, config)"},{"path":"https://maurolepore.github.io/tapLock/reference/add_auth_layers.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add authentication middle ware to a 'tower' object — add_auth_layers","text":"tower 'tower' object package 'tower' config 'openid_config' object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/add_auth_layers.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add authentication middle ware to a 'tower' object — add_auth_layers","text":"modified 'tower' object authentication layers","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/add_trailing_slash.html","id":null,"dir":"Reference","previous_headings":"","what":"Add trailing slash to URL — add_trailing_slash","title":"Add trailing slash to URL — add_trailing_slash","text":"app URL end slash, function add one.","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/add_trailing_slash.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add trailing slash to URL — add_trailing_slash","text":"","code":"add_trailing_slash(url)"},{"path":"https://maurolepore.github.io/tapLock/reference/add_trailing_slash.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add trailing slash to URL — add_trailing_slash","text":"url string containing URL","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/add_trailing_slash.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add trailing slash to URL — add_trailing_slash","text":"string containing URL trailing slash","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/build_cookie.html","id":null,"dir":"Reference","previous_headings":"","what":"Build a cookie — build_cookie","title":"Build a cookie — build_cookie","text":"Builds HttpOnly cookie key value","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/build_cookie.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Build a cookie — build_cookie","text":"","code":"build_cookie(key, value)"},{"path":"https://maurolepore.github.io/tapLock/reference/build_cookie.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Build a cookie — build_cookie","text":"key string containing cookie key value string containing cookie value","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/build_cookie.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Build a cookie — build_cookie","text":"string containing cookie","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/build_redirect_uri.html","id":null,"dir":"Reference","previous_headings":"","what":"Build a redirect URI — build_redirect_uri","title":"Build a redirect URI — build_redirect_uri","text":"Builds redirect URI app URL","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/build_redirect_uri.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Build a redirect URI — build_redirect_uri","text":"","code":"build_redirect_uri(app_url)"},{"path":"https://maurolepore.github.io/tapLock/reference/build_redirect_uri.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Build a redirect URI — build_redirect_uri","text":"app_url string containing app URL trailing slash","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/build_redirect_uri.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Build a redirect URI — build_redirect_uri","text":"string containing redirect URI","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/decode_token.html","id":null,"dir":"Reference","previous_headings":"","what":"Decode a token — decode_token","title":"Decode a token — decode_token","text":"Decodes token","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/decode_token.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Decode a token — decode_token","text":"","code":"decode_token(config, token)"},{"path":"https://maurolepore.github.io/tapLock/reference/decode_token.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Decode a token — decode_token","text":"config openid_config object token token decode","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/decode_token.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Decode a token — decode_token","text":"list containing decoded token's data","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/expires_at.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the expiration date and time of an access token — expires_at","title":"Get the expiration date and time of an access token — expires_at","text":"Gets expiration date time access token","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/expires_at.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the expiration date and time of an access token — expires_at","text":"","code":"expires_at(token)"},{"path":"https://maurolepore.github.io/tapLock/reference/expires_at.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the expiration date and time of an access token — expires_at","text":"token access_token object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/expires_at.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the expiration date and time of an access token — expires_at","text":"POSIXct object containing date time token expires","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/expires_in.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the expiration time of an access token — expires_in","title":"Get the expiration time of an access token — expires_in","text":"Gets expiration time access token","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/expires_in.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the expiration time of an access token — expires_in","text":"","code":"expires_in(token)"},{"path":"https://maurolepore.github.io/tapLock/reference/expires_in.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the expiration time of an access token — expires_in","text":"token access_token object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/expires_in.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the expiration time of an access token — expires_in","text":"duration object containing time token expires","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/get_client_id.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the client ID — get_client_id","title":"Get the client ID — get_client_id","text":"Gets client ID provider","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/get_client_id.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the client ID — get_client_id","text":"","code":"get_client_id(config)"},{"path":"https://maurolepore.github.io/tapLock/reference/get_client_id.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the client ID — get_client_id","text":"config openid_config object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/get_client_id.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the client ID — get_client_id","text":"string containing client ID","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/get_login_url.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the login URL for the app — get_login_url","title":"Get the login URL for the app — get_login_url","text":"Gets URL provider redirect login attempt.","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/get_login_url.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the login URL for the app — get_login_url","text":"","code":"get_login_url(config)"},{"path":"https://maurolepore.github.io/tapLock/reference/get_login_url.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the login URL for the app — get_login_url","text":"config openid_config object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/get_login_url.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the login URL for the app — get_login_url","text":"string containing login URL","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/get_logout_url.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the logout URL for the provider — get_logout_url","title":"Get the logout URL for the provider — get_logout_url","text":"Gets URL SLO (single logout)","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/get_logout_url.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the logout URL for the provider — get_logout_url","text":"","code":"get_logout_url(config)"},{"path":"https://maurolepore.github.io/tapLock/reference/get_logout_url.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the logout URL for the provider — get_logout_url","text":"config openid_config object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/get_logout_url.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the logout URL for the provider — get_logout_url","text":"string containing logout URL","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/get_token_field.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the issued at time of an access token — get_token_field","title":"Get the issued at time of an access token — get_token_field","text":"Gets issued time access token","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/get_token_field.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the issued at time of an access token — get_token_field","text":"","code":"get_token_field(token, field)"},{"path":"https://maurolepore.github.io/tapLock/reference/get_token_field.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the issued at time of an access token — get_token_field","text":"token access_token object field field get token","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/get_token_field.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the issued at time of an access token — get_token_field","text":"POSIXct object containing date time token issued","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/is_expired.html","id":null,"dir":"Reference","previous_headings":"","what":"Check if an access token is expired — is_expired","title":"Check if an access token is expired — is_expired","text":"Checks access token expired","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/is_expired.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check if an access token is expired — is_expired","text":"","code":"is_expired(token)"},{"path":"https://maurolepore.github.io/tapLock/reference/is_expired.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check if an access token is expired — is_expired","text":"token access_token object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/is_expired.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check if an access token is expired — is_expired","text":"boolean indicating token expired","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/is_valid.html","id":null,"dir":"Reference","previous_headings":"","what":"Check if an access token is valid — is_valid","title":"Check if an access token is valid — is_valid","text":"Checks access token valid checking expired","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/is_valid.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check if an access token is valid — is_valid","text":"","code":"is_valid(token)"},{"path":"https://maurolepore.github.io/tapLock/reference/is_valid.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check if an access token is valid — is_valid","text":"token access_token object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/is_valid.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check if an access token is valid — is_valid","text":"boolean indicating token valid","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/new_auth0_config.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a new auth0_config object — new_auth0_config","title":"Create a new auth0_config object — new_auth0_config","text":"Creates new auth0_config object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/new_auth0_config.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a new auth0_config object — new_auth0_config","text":"","code":"new_auth0_config(client_id, client_secret, auth0_domain, app_url)"},{"path":"https://maurolepore.github.io/tapLock/reference/new_auth0_config.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a new auth0_config object — new_auth0_config","text":"client_id client ID app client_secret client secret app auth0_domain domain Auth0 tenant app_url URL app","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/new_auth0_config.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a new auth0_config object — new_auth0_config","text":"auth0_config object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/new_entra_id_config.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a new entra_id_config object — new_entra_id_config","title":"Create a new entra_id_config object — new_entra_id_config","text":"Creates new entra_id_config object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/new_entra_id_config.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a new entra_id_config object — new_entra_id_config","text":"","code":"new_entra_id_config(tenant_id, client_id, client_secret, app_url)"},{"path":"https://maurolepore.github.io/tapLock/reference/new_entra_id_config.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a new entra_id_config object — new_entra_id_config","text":"tenant_id tenant ID app client_id client ID app client_secret client secret app app_url URL app","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/new_entra_id_config.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a new entra_id_config object — new_entra_id_config","text":"entra_id_config object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/new_google_config.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a new google_config object — new_google_config","title":"Create a new google_config object — new_google_config","text":"Creates new google_config object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/new_google_config.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a new google_config object — new_google_config","text":"","code":"new_google_config(client_id, client_secret, app_url)"},{"path":"https://maurolepore.github.io/tapLock/reference/new_google_config.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a new google_config object — new_google_config","text":"client_id client ID app client_secret client secret app app_url URL app","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/new_google_config.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a new google_config object — new_google_config","text":"google_config object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/new_openid_config.html","id":null,"dir":"Reference","previous_headings":"","what":"New openid configuration — new_openid_config","title":"New openid configuration — new_openid_config","text":"Creates new openid configuration object given provider. can use function individual provider functions.","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/new_openid_config.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"New openid configuration — new_openid_config","text":"","code":"new_openid_config(provider, app_url, ...)"},{"path":"https://maurolepore.github.io/tapLock/reference/new_openid_config.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"New openid configuration — new_openid_config","text":"provider openid provider use app_url URL application (used build redirect, login, logout URLs) ... Additional arguments passed provider's configuration. depends provider. \"google\" provider accepts following arguments: client_id client_secret \"entra_id\" provider accepts following arguments: client_id client_secret tenant_id \"auth0\" provider accepts following arguments: client_id client_secret auth0_domain","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/new_openid_config.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"New openid configuration — new_openid_config","text":"openid_config object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/parse_cookies.html","id":null,"dir":"Reference","previous_headings":"","what":"Parse cookies — parse_cookies","title":"Parse cookies — parse_cookies","text":"Parses cookies string","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/parse_cookies.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Parse cookies — parse_cookies","text":"","code":"parse_cookies(x)"},{"path":"https://maurolepore.github.io/tapLock/reference/parse_cookies.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Parse cookies — parse_cookies","text":"x string containing cookies","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/parse_cookies.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Parse cookies — parse_cookies","text":"list containing cookies","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/print.access_token.html","id":null,"dir":"Reference","previous_headings":"","what":"Print an access token — print.access_token","title":"Print an access token — print.access_token","text":"Prints access token's expiration date","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/print.access_token.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Print an access token — print.access_token","text":"","code":"# S3 method for class 'access_token' print(x, ...)"},{"path":"https://maurolepore.github.io/tapLock/reference/print.access_token.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Print an access token — print.access_token","text":"x access_token object ... Ignored","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/refresh_jwks.html","id":null,"dir":"Reference","previous_headings":"","what":"Refresh the JWKS — refresh_jwks","title":"Refresh the JWKS — refresh_jwks","text":"Refreshes JWKS","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/refresh_jwks.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Refresh the JWKS — refresh_jwks","text":"","code":"refresh_jwks(config)"},{"path":"https://maurolepore.github.io/tapLock/reference/refresh_jwks.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Refresh the JWKS — refresh_jwks","text":"config openid_config object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/remove_bearer.html","id":null,"dir":"Reference","previous_headings":"","what":"Remove bearer from token — remove_bearer","title":"Remove bearer from token — remove_bearer","text":"Removes \"Bearer \" prefix token","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/remove_bearer.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Remove bearer from token — remove_bearer","text":"","code":"remove_bearer(token)"},{"path":"https://maurolepore.github.io/tapLock/reference/remove_bearer.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Remove bearer from token — remove_bearer","text":"token string containing token","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/remove_bearer.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Remove bearer from token — remove_bearer","text":"string containing token without \"Bearer \" prefix","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/request_token.html","id":null,"dir":"Reference","previous_headings":"","what":"Request a token from the provider — request_token","title":"Request a token from the provider — request_token","text":"Requests token provider","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/request_token.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Request a token from the provider — request_token","text":"","code":"request_token(config, authorization_code)"},{"path":"https://maurolepore.github.io/tapLock/reference/request_token.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Request a token from the provider — request_token","text":"config openid_config object authorization_code authorization code use","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/request_token.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Request a token from the provider — request_token","text":"access_token object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/tapLock-package.html","id":null,"dir":"Reference","previous_headings":"","what":"tapLock: Seamless Single Sign-On for 'shiny' — tapLock-package","title":"tapLock: Seamless Single Sign-On for 'shiny' — tapLock-package","text":"Swift seamless Single Sign-(SSO) integration. Designed effortless compatibility popular Single Sign-providers like Google Microsoft, streamlines authentication, enhancing user experience application security. Elevate 'shiny' applications simplified, unified, secure authentication process.","code":""},{"path":[]},{"path":"https://maurolepore.github.io/tapLock/reference/tapLock-package.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"tapLock: Seamless Single Sign-On for 'shiny' — tapLock-package","text":"Maintainer: Andres Quintero andres@ixpantia.com contributors: ixpantia, SRL hola@ixpantia.com [copyright holder]","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/token.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the access token — token","title":"Get the access token — token","text":"Gets access token session used internal logic.","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/token.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the access token — token","text":"","code":"token(session = shiny::getDefaultReactiveDomain())"},{"path":"https://maurolepore.github.io/tapLock/reference/token.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the access token — token","text":"session Shiny session","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/token.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the access token — token","text":"access_token object","code":""},{"path":"https://maurolepore.github.io/tapLock/news/index.html","id":"taplock-010","dir":"Changelog","previous_headings":"","what":"tapLock 0.1.0","title":"tapLock 0.1.0","text":"Initialize NEWS.md.","code":""}]
+[{"path":"https://maurolepore.github.io/tapLock/LICENSE.html","id":null,"dir":"","previous_headings":"","what":"MIT License","title":"MIT License","text":"Copyright (c) 2024 tapLock authors Permission hereby granted, free charge, person obtaining copy software associated documentation files (“Software”), deal Software without restriction, including without limitation rights use, copy, modify, merge, publish, distribute, sublicense, /sell copies Software, permit persons Software furnished , subject following conditions: copyright notice permission notice shall included copies substantial portions Software. SOFTWARE PROVIDED “”, WITHOUT WARRANTY KIND, EXPRESS IMPLIED, INCLUDING LIMITED WARRANTIES MERCHANTABILITY, FITNESS PARTICULAR PURPOSE NONINFRINGEMENT. EVENT SHALL AUTHORS COPYRIGHT HOLDERS LIABLE CLAIM, DAMAGES LIABILITY, WHETHER ACTION CONTRACT, TORT OTHERWISE, ARISING , CONNECTION SOFTWARE USE DEALINGS SOFTWARE.","code":""},{"path":"https://maurolepore.github.io/tapLock/articles/en_securing_shiny_google.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"(English) Securing Shiny with Google Auth","text":"vignette provides step--step tutorial secure Shiny application using Google authentication tapLock R package. tapLock simplifies integration OpenID Connect OAuth 2.0 Shiny applications, ensuring robust security minimal coding effort.","code":""},{"path":"https://maurolepore.github.io/tapLock/articles/en_securing_shiny_google.html","id":"prerequisites","dir":"Articles","previous_headings":"","what":"Prerequisites","title":"(English) Securing Shiny with Google Auth","text":"proceeding, ensure following: - basic understanding R Shiny. - Shiny application ready deployment. - Access Google Developer Console OAuth credentials. - (Optional) server HTTPS enabled.","code":""},{"path":"https://maurolepore.github.io/tapLock/articles/en_securing_shiny_google.html","id":"step-1-install-taplock","dir":"Articles","previous_headings":"","what":"Step 1: Install tapLock","title":"(English) Securing Shiny with Google Auth","text":"Install tapLock GitHub using pak package:","code":"install.packages(\"tapLock\")"},{"path":"https://maurolepore.github.io/tapLock/articles/en_securing_shiny_google.html","id":"step-2-create-google-oauth-credentials","dir":"Articles","previous_headings":"","what":"Step 2: Create Google OAuth Credentials","title":"(English) Securing Shiny with Google Auth","text":"Go Google Developer Console. Create new project select existing one. Navigate ‘Credentials’ create ‘OAuth client ID’ credentials. Set Authorized JavaScript origins Shiny application URL. Set Authorized redirect URIs Shiny application URL suffix /login. Note client_id client_secret.","code":""},{"path":"https://maurolepore.github.io/tapLock/articles/en_securing_shiny_google.html","id":"step-3-configure-authentication-in-r","dir":"Articles","previous_headings":"","what":"Step 3: Configure Authentication in R","title":"(English) Securing Shiny with Google Auth","text":"Load tapLock set authentication configuration: Replace GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, SHINY_APP_URL actual credentials application URL environment variables.","code":"library(taplock)  auth_config <- new_openid_config(   provider = \"google\",   client_id = Sys.getenv(\"GOOGLE_CLIENT_ID\"),   client_secret = Sys.getenv(\"GOOGLE_CLIENT_SECRET\"),   app_url = Sys.getenv(\"SHINY_APP_URL\") )"},{"path":"https://maurolepore.github.io/tapLock/articles/en_securing_shiny_google.html","id":"step-4-modify-shiny-application","dir":"Articles","previous_headings":"","what":"Step 4: Modify Shiny Application","title":"(English) Securing Shiny with Google Auth","text":"Modify Shiny app use sso_shiny_app:","code":"library(shiny) library(tapLock)  # Authentication configuration auth_config <- new_openid_config(   provider = \"google\",   client_id = Sys.getenv(\"GOOGLE_CLIENT_ID\"),   client_secret = Sys.getenv(\"GOOGLE_CLIENT_SECRET\"),   app_url = Sys.getenv(\"SHINY_APP_URL\") )  # UI ui <- fluidPage(   tags$h1(\"Welcome to the Secure Shiny App\"),   textOutput(\"userInfo\") )  # Server server <- function(input, output, session) {   output$userInfo <- renderText({     user_email <- get_token_field(token(), \"email\")     glue::glue(\"Logged in as: {user_email}\")   }) }  # Secure Shiny app with tapLock sso_shiny_app(auth_config, ui, server)"},{"path":"https://maurolepore.github.io/tapLock/articles/en_securing_shiny_google.html","id":"step-5-deploy-the-application","dir":"Articles","previous_headings":"","what":"Step 5: Deploy the Application","title":"(English) Securing Shiny with Google Auth","text":"Deploy Shiny application normally . tapLock package handles authentication process. recommend deploying application solution like Shiny Server (Open Source Pro) faucet. Solutions like Posit Connect already include authentication require tapLock.","code":""},{"path":"https://maurolepore.github.io/tapLock/articles/en_securing_shiny_google.html","id":"conclusion","dir":"Articles","previous_headings":"","what":"Conclusion","title":"(English) Securing Shiny with Google Auth","text":"following steps, successfully secured Shiny application Google authentication using tapLock. ensures authenticated users can access application, enhancing security privacy.","code":""},{"path":"https://maurolepore.github.io/tapLock/articles/es_asegura_shiny_con_google.html","id":"introducción","dir":"Articles","previous_headings":"","what":"Introducción","title":"(Español) Asegurando Shiny con Google Auth","text":"Esta viñeta proporciona un tutorial paso paso sobre cómo asegurar una aplicación Shiny utilizando la autenticación de Google través del paquete R tapLock. tapLock simplifica la integración de OpenID Connect y OAuth 2.0 en aplicaciones Shiny, asegurando una robusta seguridad con un esfuerzo mínimo de codificación.","code":""},{"path":"https://maurolepore.github.io/tapLock/articles/es_asegura_shiny_con_google.html","id":"prerrequisitos","dir":"Articles","previous_headings":"","what":"Prerrequisitos","title":"(Español) Asegurando Shiny con Google Auth","text":"Antes de proceder, asegúrate de tener lo siguiente: - Un conocimiento básico de R y Shiny. - Una aplicación Shiny lista para ser desplegada. - Acceso Google Developer Console para las credenciales OAuth. - (Opcional) Un servidor con HTTPS habilitado.","code":""},{"path":"https://maurolepore.github.io/tapLock/articles/es_asegura_shiny_con_google.html","id":"paso-1-instalar-taplock","dir":"Articles","previous_headings":"","what":"Paso 1: Instalar tapLock","title":"(Español) Asegurando Shiny con Google Auth","text":"Instala tapLock desde GitHub usando el paquete pak:","code":"install.packages(\"tapLock\")"},{"path":"https://maurolepore.github.io/tapLock/articles/es_asegura_shiny_con_google.html","id":"paso-2-crear-credenciales-oauth-de-google","dir":"Articles","previous_headings":"","what":"Paso 2: Crear Credenciales OAuth de Google","title":"(Español) Asegurando Shiny con Google Auth","text":"Ve Google Developer Console. Crea un nuevo proyecto o selecciona uno existente. Navega ‘Credenciales’ y crea credenciales ‘OAuth client ID’. Establece los Authorized JavaScript origins en la URL de tu aplicación Shiny. Establece los Authorized redirect URIs en la URL de tu aplicación Shiny con el sufijo /login. Anota el client_id y el client_secret.","code":""},{"path":"https://maurolepore.github.io/tapLock/articles/es_asegura_shiny_con_google.html","id":"paso-3-configurar-autenticación-en-r","dir":"Articles","previous_headings":"","what":"Paso 3: Configurar Autenticación en R","title":"(Español) Asegurando Shiny con Google Auth","text":"Carga tapLock y configura la autenticación: Reemplaza GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, y SHINY_APP_URL con tus credenciales reales y la URL de tu aplicación en tus variables de entorno.","code":"library(taplock)  auth_config <- new_openid_config(   provider = \"google\",   client_id = Sys.getenv(\"GOOGLE_CLIENT_ID\"),   client_secret = Sys.getenv(\"GOOGLE_CLIENT_SECRET\"),   app_url = Sys.getenv(\"SHINY_APP_URL\") )"},{"path":"https://maurolepore.github.io/tapLock/articles/es_asegura_shiny_con_google.html","id":"paso-4-modificar-aplicación-shiny","dir":"Articles","previous_headings":"","what":"Paso 4: Modificar Aplicación Shiny","title":"(Español) Asegurando Shiny con Google Auth","text":"Modifica tu aplicación Shiny para usar sso_shiny_app:","code":"library(shiny) library(tapLock)  # Configuración de autenticación auth_config <- new_openid_config(   provider = \"google\",   client_id = Sys.getenv(\"GOOGLE_CLIENT_ID\"),   client_secret = Sys.getenv(\"GOOGLE_CLIENT_SECRET\"),   app_url = Sys.getenv(\"SHINY_APP_URL\") )  # UI ui <- fluidPage(   tags$h1(\"Bienvenido a la Aplicación Shiny Segura\"),   textOutput(\"userInfo\") )  # Server server <- function(input, output, session) {   output$userInfo <- renderText({     user_email <- get_token_field(token(), \"email\")     glue::glue(\"Conectado como: {user_email}\")   }) }  # Asegurar aplicación Shiny con tapLock sso_shiny_app(auth_config, ui, server)"},{"path":"https://maurolepore.github.io/tapLock/articles/es_asegura_shiny_con_google.html","id":"paso-5-desplegar-la-aplicación","dir":"Articles","previous_headings":"","what":"Paso 5: Desplegar la Aplicación","title":"(Español) Asegurando Shiny con Google Auth","text":"Despliega tu aplicación Shiny como lo harías normalmente. El paquete tapLock maneja el proceso de autenticación. Recomendamos desplegar tu aplicación con una solución como Shiny Server (Open Source o Pro) o con faucet. Soluciones como Posit Connect ya incluyen autenticación y requieren tapLock.","code":""},{"path":"https://maurolepore.github.io/tapLock/articles/es_asegura_shiny_con_google.html","id":"conclusión","dir":"Articles","previous_headings":"","what":"Conclusión","title":"(Español) Asegurando Shiny con Google Auth","text":"Siguiendo estos pasos, asegurado con éxito tu aplicación Shiny con autenticación de Google utilizando tapLock. Esto asegura que solo los usuarios autenticados puedan acceder tu aplicación, mejorando su seguridad y privacidad.","code":""},{"path":"https://maurolepore.github.io/tapLock/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"ixpantia, SRL. Copyright holder. Andres Quintero. Author, maintainer.","code":""},{"path":"https://maurolepore.github.io/tapLock/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Quintero (2024). tapLock: Seamless Single Sign-'shiny'. R package version 0.2.0, https://github.com/ixpantia/tapLock.","code":"@Manual{,   title = {tapLock: Seamless Single Sign-on for 'shiny'},   author = {Andres Quintero},   year = {2024},   note = {R package version 0.2.0},   url = {https://github.com/ixpantia/tapLock}, }"},{"path":"https://maurolepore.github.io/tapLock/index.html","id":"taplock-","dir":"","previous_headings":"","what":"Seamless Single Sign-on for shiny","title":"Seamless Single Sign-on for shiny","text":"goal tapLock secure R applications OpenID Connect OAuth 2.0. tapLock R library provides simple interface integrate OpenID Connect / OAuth 2.0 authentication Shiny applications Plumber APIs. tapLock uses unique approach effectively secure applications without need write almost code.","code":""},{"path":"https://maurolepore.github.io/tapLock/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Seamless Single Sign-on for shiny","text":"can install tapLock CRAN : can install development version tapLock GitHub :","code":"install.packages(\"tapLock\") # install.packages(\"pak\") pak::pak(\"ixpantia/tapLock\")"},{"path":[]},{"path":"https://maurolepore.github.io/tapLock/index.html","id":"id_1-create-an-authentication-configuration","dir":"","previous_headings":"Example","what":"1. Create an authentication configuration","title":"Seamless Single Sign-on for shiny","text":"","code":"library(taplock)  auth_config <- new_openid_config(   provider = \"google\",   client_id = Sys.getenv(\"CLIENT_ID\"),   client_secret = Sys.getenv(\"CLIENT_SECRET\"),   app_url = Sys.getenv(\"APP_URL\") )"},{"path":"https://maurolepore.github.io/tapLock/index.html","id":"id_2-secure-your-shiny-application","dir":"","previous_headings":"Example","what":"2. Secure your Shiny application","title":"Seamless Single Sign-on for shiny","text":"secure Shiny Application need add middleware layers using tower configure client credentials. example Shiny application uses tapLock secure :","code":"library(shiny) library(tapLock)  auth_config <- new_openid_config(   provider = \"google\",   client_id = Sys.getenv(\"CLIENT_ID\"),   client_secret = Sys.getenv(\"CLIENT_SECRET\"),   app_url = Sys.getenv(\"APP_URL\") )  ui <- fluidPage(   tags$h1(\"r.sso example\"),   uiOutput(\"profile\"),   textOutput(\"user\") )  server <- function(input, output, session) {     output$profile <- renderUI({     tags$img(src = get_token_field(token(), \"picture\"))   })    output$user <- renderText({     given_name <- get_token_field(token(), \"given_name\")     family_name <- get_token_field(token(), \"family_name\")     expires_at <- expires_at(token())     glue::glue(       \"Hello {given_name} {family_name}!\",       \"Your authenticated session will expire at {expires_at}.\",       .sep = \" \"     )   }) |>     bindEvent(TRUE)  } shinyApp(ui, server) |>   tower::create_tower() |>   tapLock::add_auth_layers(auth_config) |>   tower::build_tower()"},{"path":"https://maurolepore.github.io/tapLock/index.html","id":"authentication-providers","dir":"","previous_headings":"","what":"Authentication providers","title":"Seamless Single Sign-on for shiny","text":"tapLock supports following authentication providers: Google Microsoft Entra ID need support providers, please contact us hola@ixpantia.com. , developer, can contribute project adding support additional providers.","code":""},{"path":"https://maurolepore.github.io/tapLock/index.html","id":"security-model","dir":"","previous_headings":"","what":"Security Model","title":"Seamless Single Sign-on for shiny","text":"tapLock unique approach securing Shiny applications. tapLock utilizes middlewares intercept incoming requests (HTTP WebSocket requests) validates authentication token. approach allows tapLock lean efficient since expensive WebSocket connections started user authenticated. also prevents sensitive data UI portion application exposed unauthenticated users.","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/add_auth_layers.html","id":null,"dir":"Reference","previous_headings":"","what":"Add authentication middle ware to a 'tower' object — add_auth_layers","title":"Add authentication middle ware to a 'tower' object — add_auth_layers","text":"Attaches necessary authentication layers 'tower' object. secure layer added .","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/add_auth_layers.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add authentication middle ware to a 'tower' object — add_auth_layers","text":"","code":"add_auth_layers(tower, config)"},{"path":"https://maurolepore.github.io/tapLock/reference/add_auth_layers.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add authentication middle ware to a 'tower' object — add_auth_layers","text":"tower 'tower' object package 'tower' config 'openid_config' object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/add_auth_layers.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add authentication middle ware to a 'tower' object — add_auth_layers","text":"modified 'tower' object authentication layers","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/add_trailing_slash.html","id":null,"dir":"Reference","previous_headings":"","what":"Add trailing slash to URL — add_trailing_slash","title":"Add trailing slash to URL — add_trailing_slash","text":"app URL end slash, function add one.","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/add_trailing_slash.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add trailing slash to URL — add_trailing_slash","text":"","code":"add_trailing_slash(url)"},{"path":"https://maurolepore.github.io/tapLock/reference/add_trailing_slash.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add trailing slash to URL — add_trailing_slash","text":"url string containing URL","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/add_trailing_slash.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add trailing slash to URL — add_trailing_slash","text":"string containing URL trailing slash","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/build_cookie.html","id":null,"dir":"Reference","previous_headings":"","what":"Build a cookie — build_cookie","title":"Build a cookie — build_cookie","text":"Builds HttpOnly cookie key value","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/build_cookie.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Build a cookie — build_cookie","text":"","code":"build_cookie(key, value)"},{"path":"https://maurolepore.github.io/tapLock/reference/build_cookie.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Build a cookie — build_cookie","text":"key string containing cookie key value string containing cookie value","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/build_cookie.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Build a cookie — build_cookie","text":"string containing cookie","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/build_redirect_uri.html","id":null,"dir":"Reference","previous_headings":"","what":"Build a redirect URI — build_redirect_uri","title":"Build a redirect URI — build_redirect_uri","text":"Builds redirect URI app URL","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/build_redirect_uri.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Build a redirect URI — build_redirect_uri","text":"","code":"build_redirect_uri(app_url)"},{"path":"https://maurolepore.github.io/tapLock/reference/build_redirect_uri.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Build a redirect URI — build_redirect_uri","text":"app_url string containing app URL trailing slash","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/build_redirect_uri.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Build a redirect URI — build_redirect_uri","text":"string containing redirect URI","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/decode_token.html","id":null,"dir":"Reference","previous_headings":"","what":"Decode a token — decode_token","title":"Decode a token — decode_token","text":"Decodes token","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/decode_token.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Decode a token — decode_token","text":"","code":"decode_token(config, token)"},{"path":"https://maurolepore.github.io/tapLock/reference/decode_token.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Decode a token — decode_token","text":"config openid_config object token token decode","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/decode_token.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Decode a token — decode_token","text":"list containing decoded token's data","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/expires_at.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the expiration date and time of an access token — expires_at","title":"Get the expiration date and time of an access token — expires_at","text":"Gets expiration date time access token","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/expires_at.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the expiration date and time of an access token — expires_at","text":"","code":"expires_at(token)"},{"path":"https://maurolepore.github.io/tapLock/reference/expires_at.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the expiration date and time of an access token — expires_at","text":"token access_token object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/expires_at.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the expiration date and time of an access token — expires_at","text":"POSIXct object containing date time token expires","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/expires_in.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the expiration time of an access token — expires_in","title":"Get the expiration time of an access token — expires_in","text":"Gets expiration time access token","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/expires_in.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the expiration time of an access token — expires_in","text":"","code":"expires_in(token)"},{"path":"https://maurolepore.github.io/tapLock/reference/expires_in.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the expiration time of an access token — expires_in","text":"token access_token object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/expires_in.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the expiration time of an access token — expires_in","text":"duration object containing time token expires","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/get_client_id.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the client ID — get_client_id","title":"Get the client ID — get_client_id","text":"Gets client ID provider","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/get_client_id.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the client ID — get_client_id","text":"","code":"get_client_id(config)"},{"path":"https://maurolepore.github.io/tapLock/reference/get_client_id.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the client ID — get_client_id","text":"config openid_config object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/get_client_id.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the client ID — get_client_id","text":"string containing client ID","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/get_login_url.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the login URL for the app — get_login_url","title":"Get the login URL for the app — get_login_url","text":"Gets URL provider redirect login attempt.","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/get_login_url.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the login URL for the app — get_login_url","text":"","code":"get_login_url(config)"},{"path":"https://maurolepore.github.io/tapLock/reference/get_login_url.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the login URL for the app — get_login_url","text":"config openid_config object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/get_login_url.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the login URL for the app — get_login_url","text":"string containing login URL","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/get_logout_url.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the logout URL for the provider — get_logout_url","title":"Get the logout URL for the provider — get_logout_url","text":"Gets URL SLO (single logout)","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/get_logout_url.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the logout URL for the provider — get_logout_url","text":"","code":"get_logout_url(config)"},{"path":"https://maurolepore.github.io/tapLock/reference/get_logout_url.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the logout URL for the provider — get_logout_url","text":"config openid_config object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/get_logout_url.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the logout URL for the provider — get_logout_url","text":"string containing logout URL","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/get_token_field.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the issued at time of an access token — get_token_field","title":"Get the issued at time of an access token — get_token_field","text":"Gets issued time access token","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/get_token_field.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the issued at time of an access token — get_token_field","text":"","code":"get_token_field(token, field)"},{"path":"https://maurolepore.github.io/tapLock/reference/get_token_field.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the issued at time of an access token — get_token_field","text":"token access_token object field field get token","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/get_token_field.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the issued at time of an access token — get_token_field","text":"POSIXct object containing date time token issued","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/is_expired.html","id":null,"dir":"Reference","previous_headings":"","what":"Check if an access token is expired — is_expired","title":"Check if an access token is expired — is_expired","text":"Checks access token expired","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/is_expired.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check if an access token is expired — is_expired","text":"","code":"is_expired(token)"},{"path":"https://maurolepore.github.io/tapLock/reference/is_expired.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check if an access token is expired — is_expired","text":"token access_token object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/is_expired.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check if an access token is expired — is_expired","text":"boolean indicating token expired","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/is_valid.html","id":null,"dir":"Reference","previous_headings":"","what":"Check if an access token is valid — is_valid","title":"Check if an access token is valid — is_valid","text":"Checks access token valid checking expired","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/is_valid.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check if an access token is valid — is_valid","text":"","code":"is_valid(token)"},{"path":"https://maurolepore.github.io/tapLock/reference/is_valid.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check if an access token is valid — is_valid","text":"token access_token object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/is_valid.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check if an access token is valid — is_valid","text":"boolean indicating token valid","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/new_auth0_config.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a new auth0_config object — new_auth0_config","title":"Create a new auth0_config object — new_auth0_config","text":"Creates new auth0_config object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/new_auth0_config.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a new auth0_config object — new_auth0_config","text":"","code":"new_auth0_config(client_id, client_secret, auth0_domain, app_url)"},{"path":"https://maurolepore.github.io/tapLock/reference/new_auth0_config.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a new auth0_config object — new_auth0_config","text":"client_id client ID app client_secret client secret app auth0_domain domain Auth0 tenant app_url URL app","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/new_auth0_config.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a new auth0_config object — new_auth0_config","text":"auth0_config object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/new_entra_id_config.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a new entra_id_config object — new_entra_id_config","title":"Create a new entra_id_config object — new_entra_id_config","text":"Creates new entra_id_config object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/new_entra_id_config.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a new entra_id_config object — new_entra_id_config","text":"","code":"new_entra_id_config(tenant_id, client_id, client_secret, app_url)"},{"path":"https://maurolepore.github.io/tapLock/reference/new_entra_id_config.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a new entra_id_config object — new_entra_id_config","text":"tenant_id tenant ID app client_id client ID app client_secret client secret app app_url URL app","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/new_entra_id_config.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a new entra_id_config object — new_entra_id_config","text":"entra_id_config object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/new_google_config.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a new google_config object — new_google_config","title":"Create a new google_config object — new_google_config","text":"Creates new google_config object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/new_google_config.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a new google_config object — new_google_config","text":"","code":"new_google_config(client_id, client_secret, app_url)"},{"path":"https://maurolepore.github.io/tapLock/reference/new_google_config.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a new google_config object — new_google_config","text":"client_id client ID app client_secret client secret app app_url URL app","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/new_google_config.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a new google_config object — new_google_config","text":"google_config object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/new_openid_config.html","id":null,"dir":"Reference","previous_headings":"","what":"New openid configuration — new_openid_config","title":"New openid configuration — new_openid_config","text":"Creates new openid configuration object given provider. can use function individual provider functions.","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/new_openid_config.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"New openid configuration — new_openid_config","text":"","code":"new_openid_config(provider, app_url, ...)"},{"path":"https://maurolepore.github.io/tapLock/reference/new_openid_config.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"New openid configuration — new_openid_config","text":"provider openid provider use app_url URL application (used build redirect, login, logout URLs) ... Additional arguments passed provider's configuration. depends provider. \"google\" provider accepts following arguments: client_id client_secret \"entra_id\" provider accepts following arguments: client_id client_secret tenant_id \"auth0\" provider accepts following arguments: client_id client_secret auth0_domain","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/new_openid_config.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"New openid configuration — new_openid_config","text":"openid_config object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/parse_cookies.html","id":null,"dir":"Reference","previous_headings":"","what":"Parse cookies — parse_cookies","title":"Parse cookies — parse_cookies","text":"Parses cookies string","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/parse_cookies.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Parse cookies — parse_cookies","text":"","code":"parse_cookies(x)"},{"path":"https://maurolepore.github.io/tapLock/reference/parse_cookies.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Parse cookies — parse_cookies","text":"x string containing cookies","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/parse_cookies.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Parse cookies — parse_cookies","text":"list containing cookies","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/print.access_token.html","id":null,"dir":"Reference","previous_headings":"","what":"Print an access token — print.access_token","title":"Print an access token — print.access_token","text":"Prints access token's expiration date","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/print.access_token.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Print an access token — print.access_token","text":"","code":"# S3 method for class 'access_token' print(x, ...)"},{"path":"https://maurolepore.github.io/tapLock/reference/print.access_token.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Print an access token — print.access_token","text":"x access_token object ... Ignored","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/refresh_jwks.html","id":null,"dir":"Reference","previous_headings":"","what":"Refresh the JWKS — refresh_jwks","title":"Refresh the JWKS — refresh_jwks","text":"Refreshes JWKS","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/refresh_jwks.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Refresh the JWKS — refresh_jwks","text":"","code":"refresh_jwks(config)"},{"path":"https://maurolepore.github.io/tapLock/reference/refresh_jwks.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Refresh the JWKS — refresh_jwks","text":"config openid_config object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/remove_bearer.html","id":null,"dir":"Reference","previous_headings":"","what":"Remove bearer from token — remove_bearer","title":"Remove bearer from token — remove_bearer","text":"Removes \"Bearer \" prefix token","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/remove_bearer.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Remove bearer from token — remove_bearer","text":"","code":"remove_bearer(token)"},{"path":"https://maurolepore.github.io/tapLock/reference/remove_bearer.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Remove bearer from token — remove_bearer","text":"token string containing token","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/remove_bearer.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Remove bearer from token — remove_bearer","text":"string containing token without \"Bearer \" prefix","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/request_token.html","id":null,"dir":"Reference","previous_headings":"","what":"Request a token from the provider — request_token","title":"Request a token from the provider — request_token","text":"Requests token provider","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/request_token.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Request a token from the provider — request_token","text":"","code":"request_token(config, authorization_code)"},{"path":"https://maurolepore.github.io/tapLock/reference/request_token.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Request a token from the provider — request_token","text":"config openid_config object authorization_code authorization code use","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/request_token.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Request a token from the provider — request_token","text":"access_token object","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/tapLock-package.html","id":null,"dir":"Reference","previous_headings":"","what":"tapLock: Seamless Single Sign-On for 'shiny' — tapLock-package","title":"tapLock: Seamless Single Sign-On for 'shiny' — tapLock-package","text":"Swift seamless Single Sign-(SSO) integration. Designed effortless compatibility popular Single Sign-providers like Google Microsoft, streamlines authentication, enhancing user experience application security. Elevate 'shiny' applications simplified, unified, secure authentication process.","code":""},{"path":[]},{"path":"https://maurolepore.github.io/tapLock/reference/tapLock-package.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"tapLock: Seamless Single Sign-On for 'shiny' — tapLock-package","text":"Maintainer: Andres Quintero andres@ixpantia.com contributors: ixpantia, SRL hola@ixpantia.com [copyright holder]","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/token.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the access token — token","title":"Get the access token — token","text":"Gets access token session used internal logic.","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/token.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the access token — token","text":"","code":"token(session = shiny::getDefaultReactiveDomain())"},{"path":"https://maurolepore.github.io/tapLock/reference/token.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the access token — token","text":"session Shiny session","code":""},{"path":"https://maurolepore.github.io/tapLock/reference/token.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the access token — token","text":"access_token object","code":""},{"path":"https://maurolepore.github.io/tapLock/news/index.html","id":"taplock-010","dir":"Changelog","previous_headings":"","what":"tapLock 0.1.0","title":"tapLock 0.1.0","text":"Initialize NEWS.md.","code":""}]