【问题标题】:rdrop2 on shinyapps.io - authentication does not workshinyapps.io 上的 rdrop2 - 身份验证不起作用
【发布时间】:2021-12-03 14:27:30
【问题描述】:

为了能够持久存储在 Shinyapps.io 上创建的数据,我决定通过 rdrop2 使用 Dropbox。但是,我有一个问题:rdrop2 每次都希望通过浏览器从 Dropbox 进行手动身份验证。

我的计划是通过 dropkey.rds 拦截它。

所以我通过PC本地浏览器完成了身份验证,保存了dropkey.rds,为了安全起见,将它放在我的www文件夹和相应脚本所在的目录中,并在“项目顶部文件夹”。只是为了让函数可以确定地找到dropkey.rds。

不幸的是,它不起作用。即使在本地,脚本也会要求我进行身份验证(至少在我第一次运行它时)。在 Shinyapps 中,程序只是崩溃,因为这里没有浏览器可以打开。

如何绕过 Shinyapps.io 中的身份验证?

您可以在文章末尾找到一些代码摘录。谢谢!!!

最好的问候


代码摘录:

  token <- readRDS("droptoken.rds")
  drop_acc(dtoken = token)
  
  drop_upload(Pn, path = "test")

(Pn 只是应该上传的 png 的路径)

登录 Shinyapps.io

正在等待浏览器中的身份验证... 2021-10-15T10:21:44.490437+00:00 shinyapps[48xxxxx]:按 Esc/Ctrl + C 中止 2021-10-15T10:21:44.491678+00:00 shinyapps[48xxxxx]: https://www.dropbox.com/oauth2/authorize?client_id=mxxxxxx2w&redirect_uri=xxxx 2021-10-15T10:21:44.491610+00:00 shinyapps[48xxxxxx]:请指点 您的浏览器到以下网址:

【问题讨论】:

    标签: r shiny dropbox shinyapps rdrop2


    【解决方案1】:

    小更新:

    我能够解决问题。解决办法是as described here

    为了让未来的读者更加清楚,对于一个闪亮的应用程序,您应该 将您的令牌包含为 RDS,然后

    使用该令牌进行身份验证,例如 drop_auth(rdstoken = "tokenfile.rds") 在 global.R 或 server.R 的顶部,然后调用 其他 drop_() 函数通常(不使用 dtoken arg)执行 不调用 drop_auth(),将令牌从 RDS 文件读入 R,然后 通过 dtoken 将该令牌对象传递给每个 drop_() 函数 arg 我认为第一个选项要好得多(我就是这样做的), 但第二个应该仍然可行。

    将身份验证放在 server.R 的顶部(对于工作人员来说,ui.R :D)为我解决了这个问题。请注意,您希望在脚本中使用以下 rdrop2 命令,而无需再次调用 auth 或 rds 文件! :)

    【讨论】:

      猜你喜欢
      • 2012-10-04
      • 2021-04-18
      • 1970-01-01
      • 2012-04-29
      • 2012-03-18
      • 2011-07-05
      • 2013-12-02
      相关资源
      最近更新 更多