class: shuriken-100 .blade1.bg-cyan[ # What? ] .hole.center[ # `auth0` ## Secure authentication in Shiny Apps <br/> <br/> <img src="img/hello.png" width="100%" style="display: block; margin: auto;" /> ] .blade3.bg-light-blue.yellow.center[ ## https: //github.com/curso-r/auth0 ] --- class: split-three, center .row.left[ # Why? .center[ ## Connect using MANY providers ] .pull-left[ <img src="img/social.png" width="80%" style="display: block; margin: auto;" /> ] .pull-right[ <img src="img/enterprise.png" width="70%" style="display: block; margin: auto;" /> ] ] .row.middle[ ## ] .row[ ## ] --- class: split-three, center .row.left[ # Why? .center[ ## Connect using MANY providers ] .pull-left[ <img src="img/social.png" width="80%" style="display: block; margin: auto;" /> ] .pull-right[ <img src="img/enterprise.png" width="70%" style="display: block; margin: auto;" /> ] ] .row.middle[ ## ] .row.bg-lime.black[ <br/> <br/> ## FREE (mium) ] --- class: split-one .left[ # How? ] ## Use `app.R` ```r library(shiny) library(auth0) ui <- fluidPage( h1("Hello, auth0!"), logoutButton() ) server <- function(input, output, session) { } *shinyAppAuth0(ui, server) ## only difference ``` --- class: split-one .left[ # How? ] ## Use `app.R` ```r library(shiny) library(auth0) ui <- fluidPage( h1("Hello, auth0!"), logoutButton() ) server <- function(input, output, session) { } *shinyAppAuth0(ui, server) ## only difference ``` <img src="img/notbad.jpg" width="30%" style="display: block; margin: auto;" /> --- # Really, just that? .right-column[ No :/ ### Create Auth0 account ### Create new Auth0 Application ### Fill connection info in `_auth0.yml` file .left[ ```r name: myApp shiny_config: local_url: http://localhost:8100 remote_url: https://johndoe.shinyapps.io/myapp auth0_config: api_url: https://<USERNAME>.auth0.com credentials: key: <CLIENT ID> secret: <CLIENT SECRET> ``` ] ] .left-column[ ] --- # Really, just that? .right-column[ No :/ ### Create Auth0 account ### Create new Auth0 Application ### Fill connection info in `_auth0.yml` file .left[ ```r name: myApp shiny_config: local_url: http://localhost:8100 remote_url: https://johndoe.shinyapps.io/myapp auth0_config: api_url: https://<USERNAME>.auth0.com credentials: key: <CLIENT ID> secret: <CLIENT SECRET> ``` ] ] .left-column[ <img src="img/okay.png" width="100%" style="display: block; margin: auto;" /> ] --- # Really, just that? .right-column[ No :/ ### Create Auth0 account ### Create new Auth0 Application ### Fill connection info in `_auth0.yml` file .left[ ```r name: myApp shiny_config: local_url: http://localhost:8100 remote_url: https://johndoe.shinyapps.io/myapp auth0_config: api_url: https://<USERNAME>.auth0.com credentials: key: <CLIENT ID> secret: <CLIENT SECRET> ``` ] ] .left-column[ <img src="img/okay.png" width="100%" style="display: block; margin: auto;" /> ] --- # Really, just that? .right-column[ No :/ ### Create Auth0 account ### Create new Auth0 Application ### Fill connection info in `_auth0.yml` file .left[ ```r name: myApp shiny_config: local_url: http://localhost:8100 remote_url: https://johndoe.shinyapps.io/myapp auth0_config: api_url: https://<USERNAME>.auth0.com credentials: key: <CLIENT ID> secret: <CLIENT SECRET> ``` ] ] .left-column[ <img src="img/okay.png" width="100%" style="display: block; margin: auto;" /> ] --- class: split-three .row.bg-cyan.middle.left[ # .white[More?] .center[ ## `logoutButton()` ### log out button ] ] .row.bg-light-blue.center[ <br/> ## `session$userData$auth0_info` ### Capture user info ] .row.bg-cyan.center[ <br/> ## `use_auth0()` ### Create `_auth0.yml` file ] --- class: split-three .row.bg-cyan.middle.left[ # .white[More?] .center[ ## `logoutButton()` ### log out button ] ] .row.bg-light-blue.center[ <br/> ## `session$userData$auth0_info` ### Capture user info ] .row.bg-cyan.center[ <br/> ## `use_auth0()` ### Create `_auth0.yml` file ] --- class: center split-three .row.bg-green.left[ # Do you need help? <br/> .white.center[ # YES PLZ ] ] .row.bg-lime[ <br/> <br/> # Make `ui.R/server.R` work ] .row.bg-green[ <br/> <br/> # Implement Auth0's user .yellow[**API**] ] --- class: center split-three .row.bg-pink.left[ # .yellow[Where?] .center[ ## .white[**CRAN**] ```r install.packages("auth0") ``` ] ] .row.bg-purple[ <br/> ## .white[**GitHub**] ```r remotes::install_github("curso-r/auth0") ``` ] .row.bg-pink[ <br/> ## .white[**Issues**] ```r https://github.com/curso-r/auth0/issues ``` ] --- class: center middle # Who's to blame? <br/> <br/> .pull-left[ ### .red[Julio Trecenti] ([@jtrecenti](https://github.com/jtrecenti), cre) <img src="img/jubs.jpeg" width="40%" style="display: block; margin: auto;" /> ### Curso-R team ([@curso-r](https://github.com/curso-r), aut) <img src="img/cursor.png" width="80%" style="display: block; margin: auto;" /> ] .pull-right[ ### Dean Attali ([@daattali](https://github.com/daattali), ctb) <img src="img/dean.jpeg" width="40%" style="display: block; margin: auto;" /> ### José Jesus ([@jjesusfilho](https://github.com/jjesusfilho), ctb) <img src="img/jose.png" width="40%" style="display: block; margin: auto;" /> ] --- class: center middle # Who's to blame? <br/> <br/> .pull-left[ ### .red[Julio Trecenti] ([@jtrecenti](https://github.com/jtrecenti), cre) <img src="img/jubs.jpeg" width="40%" style="display: block; margin: auto;" /> ### Curso-R team ([@curso-r](https://github.com/curso-r), aut) <img src="img/cursor.png" width="80%" style="display: block; margin: auto;" /> ] .pull-right[ ### Dean Attali ([@daattali](https://github.com/daattali), ctb) <img src="img/dean.jpeg" width="40%" style="display: block; margin: auto;" /> ### José Jesus ([@jjesusfilho](https://github.com/jjesusfilho), ctb) <img src="img/jose.png" width="40%" style="display: block; margin: auto;" /> ]