+
+
+
License
Full license
diff --git a/pkgdown.yml b/pkgdown.yml
index c4950b4..43cc5cc 100644
--- a/pkgdown.yml
+++ b/pkgdown.yml
@@ -1,6 +1,8 @@
pandoc: 2.19.2
pkgdown: 2.0.7
pkgdown_sha: ~
-articles: {}
-last_built: 2024-01-02T17:56Z
+articles:
+ en_securing_shiny_google: en_securing_shiny_google.html
+ es_asegura_shiny_con_google: es_asegura_shiny_con_google.html
+last_built: 2024-01-02T20:59Z
diff --git a/reference/access_token.html b/reference/access_token.html
index 2e49a6e..4e6075c 100644
--- a/reference/access_token.html
+++ b/reference/access_token.html
@@ -20,11 +20,24 @@
+
@@ -32,7 +45,7 @@
diff --git a/reference/build_cookie.html b/reference/build_cookie.html
index f007300..606e7b5 100644
--- a/reference/build_cookie.html
+++ b/reference/build_cookie.html
@@ -20,11 +20,24 @@
+
@@ -32,7 +45,7 @@
diff --git a/reference/build_redirect_uri.html b/reference/build_redirect_uri.html
index b99221c..b8a0272 100644
--- a/reference/build_redirect_uri.html
+++ b/reference/build_redirect_uri.html
@@ -20,11 +20,24 @@
+
@@ -32,7 +45,7 @@
diff --git a/reference/decode_token.html b/reference/decode_token.html
index 0317486..5978062 100644
--- a/reference/decode_token.html
+++ b/reference/decode_token.html
@@ -20,11 +20,24 @@
+
@@ -32,7 +45,7 @@
diff --git a/reference/expires_at.html b/reference/expires_at.html
index 86fc49d..aa8ecfe 100644
--- a/reference/expires_at.html
+++ b/reference/expires_at.html
@@ -20,11 +20,24 @@
+
@@ -32,7 +45,7 @@
diff --git a/reference/expires_in.html b/reference/expires_in.html
index e1911c1..ac414ee 100644
--- a/reference/expires_in.html
+++ b/reference/expires_in.html
@@ -20,11 +20,24 @@
+
@@ -32,7 +45,7 @@
diff --git a/reference/get_access_token.html b/reference/get_access_token.html
index 7df8829..57f9365 100644
--- a/reference/get_access_token.html
+++ b/reference/get_access_token.html
@@ -20,11 +20,24 @@
+
@@ -32,7 +45,7 @@
diff --git a/reference/get_bearer.html b/reference/get_bearer.html
index 5c3e8ff..999d58e 100644
--- a/reference/get_bearer.html
+++ b/reference/get_bearer.html
@@ -20,11 +20,24 @@
+
@@ -32,7 +45,7 @@
diff --git a/reference/get_client_id.html b/reference/get_client_id.html
index c1de324..3bfaed5 100644
--- a/reference/get_client_id.html
+++ b/reference/get_client_id.html
@@ -20,11 +20,24 @@
+
@@ -32,7 +45,7 @@
diff --git a/reference/get_login_url.html b/reference/get_login_url.html
index 8a0d1d9..6094b61 100644
--- a/reference/get_login_url.html
+++ b/reference/get_login_url.html
@@ -22,11 +22,24 @@
+
@@ -34,7 +47,7 @@
diff --git a/reference/get_logout_url.html b/reference/get_logout_url.html
index 27e943c..ddfae8f 100644
--- a/reference/get_logout_url.html
+++ b/reference/get_logout_url.html
@@ -20,11 +20,24 @@
+
@@ -32,7 +45,7 @@
diff --git a/reference/get_token_field.html b/reference/get_token_field.html
index b3d6115..1947f53 100644
--- a/reference/get_token_field.html
+++ b/reference/get_token_field.html
@@ -20,11 +20,24 @@
+
@@ -32,7 +45,7 @@
diff --git a/reference/index.html b/reference/index.html
index 50cb5bd..635495d 100644
--- a/reference/index.html
+++ b/reference/index.html
@@ -20,11 +20,24 @@
+
diff --git a/reference/is_expired.html b/reference/is_expired.html
index 49e3123..4025415 100644
--- a/reference/is_expired.html
+++ b/reference/is_expired.html
@@ -20,11 +20,24 @@
+
@@ -32,7 +45,7 @@
diff --git a/reference/is_valid.html b/reference/is_valid.html
index a462bf2..3caa286 100644
--- a/reference/is_valid.html
+++ b/reference/is_valid.html
@@ -22,11 +22,24 @@
+
@@ -34,7 +47,7 @@
diff --git a/reference/new_openid_config.html b/reference/new_openid_config.html
index 959a373..35ae886 100644
--- a/reference/new_openid_config.html
+++ b/reference/new_openid_config.html
@@ -22,11 +22,24 @@
+
@@ -34,7 +47,7 @@
diff --git a/reference/parse_cookies.html b/reference/parse_cookies.html
index 5ccc17b..f41647e 100644
--- a/reference/parse_cookies.html
+++ b/reference/parse_cookies.html
@@ -20,11 +20,24 @@
+
@@ -32,7 +45,7 @@
diff --git a/reference/print.access_token.html b/reference/print.access_token.html
index 2871c27..5976b66 100644
--- a/reference/print.access_token.html
+++ b/reference/print.access_token.html
@@ -20,11 +20,24 @@
+
@@ -32,7 +45,7 @@
diff --git a/reference/refresh_jwks.html b/reference/refresh_jwks.html
index 9aee190..1967335 100644
--- a/reference/refresh_jwks.html
+++ b/reference/refresh_jwks.html
@@ -20,11 +20,24 @@
+
@@ -32,7 +45,7 @@
diff --git a/reference/remove_bearer.html b/reference/remove_bearer.html
index f135b7d..4f48a63 100644
--- a/reference/remove_bearer.html
+++ b/reference/remove_bearer.html
@@ -20,11 +20,24 @@
+
@@ -32,7 +45,7 @@
diff --git a/reference/request_token.html b/reference/request_token.html
index 4e0eac7..94ec89f 100644
--- a/reference/request_token.html
+++ b/reference/request_token.html
@@ -20,11 +20,24 @@
+
@@ -32,7 +45,7 @@
diff --git a/reference/sso_shiny_app.html b/reference/sso_shiny_app.html
index 069e0d5..4810370 100644
--- a/reference/sso_shiny_app.html
+++ b/reference/sso_shiny_app.html
@@ -22,11 +22,24 @@
+
@@ -34,7 +47,7 @@
diff --git a/reference/token.html b/reference/token.html
index e05cf1f..97dd485 100644
--- a/reference/token.html
+++ b/reference/token.html
@@ -22,11 +22,24 @@
+
@@ -34,7 +47,7 @@
diff --git a/search.json b/search.json
index 1fb10b1..61bab25 100644
--- a/search.json
+++ b/search.json
@@ -1 +1 @@
-[{"path":"/LICENSE.html","id":null,"dir":"","previous_headings":"","what":"MIT License","title":"MIT License","text":"Copyright (c) 2023 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":"/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"ixpantia, SRL. Copyright holder. Andres Quintero. Author, maintainer.","code":""},{"path":"/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Quintero (2024). tapLock: Seamless SSO R applications. R package version 0.1.0.","code":"@Manual{, title = {tapLock: Seamless SSO for R applications}, author = {Andres Quintero}, year = {2024}, note = {R package version 0.1.0}, }"},{"path":"/index.html","id":"taplock-","dir":"","previous_headings":"","what":"Seamless SSO for R applications","title":"Seamless SSO for R applications","text":"Secure R applications OpenID Connect OAuth 2.0.","code":""},{"path":"/index.html","id":"summary","dir":"","previous_headings":"","what":"Summary","title":"Seamless SSO for R applications","text":"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":"/index.html","id":"authentication-providers","dir":"","previous_headings":"","what":"Authentication providers","title":"Seamless SSO for R applications","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":"/index.html","id":"security-model","dir":"","previous_headings":"","what":"Security Model","title":"Seamless SSO for R applications","text":"tapLock unique approach securing Shiny applications Plumber APIs. 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":[]},{"path":"/index.html","id":"id_1-install-taplock","dir":"","previous_headings":"How to use tapLock with Shiny","what":"1. Install tapLock","title":"Seamless SSO for R applications","text":"","code":"pak::pak(\"ixpantia/taplock\")"},{"path":"/index.html","id":"id_2-create-an-authentication-configuration","dir":"","previous_headings":"How to use tapLock with Shiny","what":"2. Create an authentication configuration","title":"Seamless SSO for R applications","text":"","code":"library(taplock) auth_config <- new_openid_config( provider = \"entra_id\", # The following values are obtained from the authentication provider tenant_id = Sys.getenv(\"TENANT_ID\"), client_id = Sys.getenv(\"CLIENT_ID\"), client_secret = Sys.getenv(\"CLIENT_SECRET\"), # This should be the URL of your application app_url = Sys.getenv(\"APP_URL\") )"},{"path":"/index.html","id":"id_3-secure-your-shiny-application","dir":"","previous_headings":"How to use tapLock with Shiny","what":"3. Secure your Shiny application","title":"Seamless SSO for R applications","text":"secure Shiny Application simply need expose sso_shiny_app instead regular shinyApp end app.R file. example Shiny application uses tapLock secure :","code":"library(shiny) library(tapLock) auth_config <- new_openid_config( provider = \"entra_id\", tenant_id = Sys.getenv(\"TENANT_ID\"), 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\"), textOutput(\"user\") ) server <- function(input, output, session) { 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 = \" \" ) }) } sso_shiny_app(auth_config, ui, server)"},{"path":"/reference/access_token.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a new Access Token — access_token","title":"Create a new Access Token — access_token","text":"Creates new access token config token string","code":""},{"path":"/reference/access_token.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a new Access Token — access_token","text":"","code":"access_token(config, token_str)"},{"path":"/reference/access_token.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a new Access Token — access_token","text":"config openid_config object token_str string containing access token decode","code":""},{"path":"/reference/access_token.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a new Access Token — access_token","text":"access_token object","code":""},{"path":"/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":"/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":"/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":"/reference/build_cookie.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Build a cookie — build_cookie","text":"string containing cookie","code":""},{"path":"/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":"/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":"/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","code":""},{"path":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/reference/get_access_token.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the access token string — get_access_token","title":"Get the access token string — get_access_token","text":"Gets access token string","code":""},{"path":"/reference/get_access_token.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the access token string — get_access_token","text":"","code":"get_access_token(token)"},{"path":"/reference/get_access_token.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the access token string — get_access_token","text":"token access_token object","code":""},{"path":"/reference/get_access_token.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the access token string — get_access_token","text":"string containing access token","code":""},{"path":"/reference/get_bearer.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the Authorization header for an access token — get_bearer","title":"Get the Authorization header for an access token — get_bearer","text":"Gets Authorization header access token","code":""},{"path":"/reference/get_bearer.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the Authorization header for an access token — get_bearer","text":"","code":"get_bearer(token)"},{"path":"/reference/get_bearer.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the Authorization header for an access token — get_bearer","text":"token access_token object","code":""},{"path":"/reference/get_bearer.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the Authorization header for an access token — get_bearer","text":"string containing Authorization header","code":""},{"path":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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","code":""},{"path":"/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":"/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","code":""},{"path":"/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":"/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":"/reference/parse_cookies.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Parse cookies — parse_cookies","text":"","code":"parse_cookies(x)"},{"path":"/reference/parse_cookies.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Parse cookies — parse_cookies","text":"x string containing cookies","code":""},{"path":"/reference/parse_cookies.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Parse cookies — parse_cookies","text":"list containing cookies","code":""},{"path":"/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":"/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 access_token print(x, ...)"},{"path":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/reference/sso_shiny_app.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a Shiny app with SSO — sso_shiny_app","title":"Create a Shiny app with SSO — sso_shiny_app","text":"Creates Shiny app SSO (single sign-) based given configuration.","code":""},{"path":"/reference/sso_shiny_app.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a Shiny app with SSO — sso_shiny_app","text":"","code":"sso_shiny_app(config, ui, server)"},{"path":"/reference/sso_shiny_app.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a Shiny app with SSO — sso_shiny_app","text":"config openid_config object ui Shiny UI function server Shiny server function. function requires three arguments: input, output, session.","code":""},{"path":"/reference/sso_shiny_app.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a Shiny app with SSO — sso_shiny_app","text":"Shiny app (Compatible shinyApp())","code":""},{"path":[]},{"path":"/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":"/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":"/reference/token.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the access token — token","text":"session Shiny session","code":""},{"path":"/reference/token.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the access token — token","text":"access_token object","code":""}]
+[{"path":"/LICENSE.html","id":null,"dir":"","previous_headings":"","what":"MIT License","title":"MIT License","text":"Copyright (c) 2023 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":"/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":"/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":"/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":"pak::pak(\"ixpantia/taplock\")"},{"path":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"pak::pak(\"ixpantia/taplock\")"},{"path":"/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":"/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":"/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":"/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":"/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":"/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"ixpantia, SRL. Copyright holder. Andres Quintero. Author, maintainer.","code":""},{"path":"/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Quintero (2024). tapLock: Seamless SSO R applications. R package version 0.1.0, https://github.com/ixpantia/tapLock.","code":"@Manual{, title = {tapLock: Seamless SSO for R applications}, author = {Andres Quintero}, year = {2024}, note = {R package version 0.1.0}, url = {https://github.com/ixpantia/tapLock}, }"},{"path":"/index.html","id":"taplock-","dir":"","previous_headings":"","what":"Seamless SSO for R applications","title":"Seamless SSO for R applications","text":"Secure R applications OpenID Connect OAuth 2.0.","code":""},{"path":"/index.html","id":"summary","dir":"","previous_headings":"","what":"Summary","title":"Seamless SSO for R applications","text":"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":"/index.html","id":"authentication-providers","dir":"","previous_headings":"","what":"Authentication providers","title":"Seamless SSO for R applications","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":"/index.html","id":"security-model","dir":"","previous_headings":"","what":"Security Model","title":"Seamless SSO for R applications","text":"tapLock unique approach securing Shiny applications Plumber APIs. 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":[]},{"path":"/index.html","id":"id_1-install-taplock","dir":"","previous_headings":"How to use tapLock with Shiny","what":"1. Install tapLock","title":"Seamless SSO for R applications","text":"","code":"pak::pak(\"ixpantia/taplock\")"},{"path":"/index.html","id":"id_2-create-an-authentication-configuration","dir":"","previous_headings":"How to use tapLock with Shiny","what":"2. Create an authentication configuration","title":"Seamless SSO for R applications","text":"","code":"library(taplock) auth_config <- new_openid_config( provider = \"entra_id\", # The following values are obtained from the authentication provider tenant_id = Sys.getenv(\"TENANT_ID\"), client_id = Sys.getenv(\"CLIENT_ID\"), client_secret = Sys.getenv(\"CLIENT_SECRET\"), # This should be the URL of your application app_url = Sys.getenv(\"APP_URL\") )"},{"path":"/index.html","id":"id_3-secure-your-shiny-application","dir":"","previous_headings":"How to use tapLock with Shiny","what":"3. Secure your Shiny application","title":"Seamless SSO for R applications","text":"secure Shiny Application simply need expose sso_shiny_app instead regular shinyApp end app.R file. example Shiny application uses tapLock secure :","code":"library(shiny) library(tapLock) auth_config <- new_openid_config( provider = \"entra_id\", tenant_id = Sys.getenv(\"TENANT_ID\"), 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\"), textOutput(\"user\") ) server <- function(input, output, session) { 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 = \" \" ) }) } sso_shiny_app(auth_config, ui, server)"},{"path":"/reference/access_token.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a new Access Token — access_token","title":"Create a new Access Token — access_token","text":"Creates new access token config token string","code":""},{"path":"/reference/access_token.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a new Access Token — access_token","text":"","code":"access_token(config, token_str)"},{"path":"/reference/access_token.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a new Access Token — access_token","text":"config openid_config object token_str string containing access token decode","code":""},{"path":"/reference/access_token.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a new Access Token — access_token","text":"access_token object","code":""},{"path":"/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":"/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":"/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":"/reference/build_cookie.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Build a cookie — build_cookie","text":"string containing cookie","code":""},{"path":"/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":"/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":"/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","code":""},{"path":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/reference/get_access_token.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the access token string — get_access_token","title":"Get the access token string — get_access_token","text":"Gets access token string","code":""},{"path":"/reference/get_access_token.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the access token string — get_access_token","text":"","code":"get_access_token(token)"},{"path":"/reference/get_access_token.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the access token string — get_access_token","text":"token access_token object","code":""},{"path":"/reference/get_access_token.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the access token string — get_access_token","text":"string containing access token","code":""},{"path":"/reference/get_bearer.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the Authorization header for an access token — get_bearer","title":"Get the Authorization header for an access token — get_bearer","text":"Gets Authorization header access token","code":""},{"path":"/reference/get_bearer.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the Authorization header for an access token — get_bearer","text":"","code":"get_bearer(token)"},{"path":"/reference/get_bearer.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the Authorization header for an access token — get_bearer","text":"token access_token object","code":""},{"path":"/reference/get_bearer.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the Authorization header for an access token — get_bearer","text":"string containing Authorization header","code":""},{"path":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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","code":""},{"path":"/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":"/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","code":""},{"path":"/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":"/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":"/reference/parse_cookies.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Parse cookies — parse_cookies","text":"","code":"parse_cookies(x)"},{"path":"/reference/parse_cookies.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Parse cookies — parse_cookies","text":"x string containing cookies","code":""},{"path":"/reference/parse_cookies.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Parse cookies — parse_cookies","text":"list containing cookies","code":""},{"path":"/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":"/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 access_token print(x, ...)"},{"path":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/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":"/reference/sso_shiny_app.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a Shiny app with SSO — sso_shiny_app","title":"Create a Shiny app with SSO — sso_shiny_app","text":"Creates Shiny app SSO (single sign-) based given configuration.","code":""},{"path":"/reference/sso_shiny_app.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a Shiny app with SSO — sso_shiny_app","text":"","code":"sso_shiny_app(config, ui, server)"},{"path":"/reference/sso_shiny_app.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a Shiny app with SSO — sso_shiny_app","text":"config openid_config object ui Shiny UI function server Shiny server function. function requires three arguments: input, output, session.","code":""},{"path":"/reference/sso_shiny_app.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a Shiny app with SSO — sso_shiny_app","text":"Shiny app (Compatible shinyApp())","code":""},{"path":[]},{"path":"/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":"/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":"/reference/token.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the access token — token","text":"session Shiny session","code":""},{"path":"/reference/token.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the access token — token","text":"access_token object","code":""}]
diff --git a/sitemap.xml b/sitemap.xml
index 797700b..0a8ea3e 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -9,6 +9,15 @@
/LICENSE.html
+
+ /articles/en_securing_shiny_google.html
+
+
+ /articles/es_asegura_shiny_con_google.html
+
+
+ /articles/index.html
+
/authors.html