rstudioapi askForPassword没有屏蔽用户名输入

时间:2017-09-06 16:58:17

标签: r passwords rstudio roracle

有没有办法在rstudioapi :: askForPassword弹出窗口中禁用屏蔽,以便用户可以输入他们的用户名?

我正在构建一个我可以与团队分享的功能,使用ROracle pacakge连接到我们的Oracle数据库实例

当前解决方案,

  connection <- dbConnect(
    driver
    , username = rstudioapi::askForPassword(prompt = 'Please enter username: ')
    , password = rstudioapi::askForPassword(prompt = 'Password: ')
    , dbname = 'my.connection.string'
  )

这会弹出以下提示: (image in link)

这是RStudio database docs that uses the Rstudio api

中描述的解决方案

想要资助一个不掩盖密码的解决方案,但会弹出相同的提示(如果可能,可以使用一行代码......)

2 个答案:

答案 0 :(得分:2)

如果您使用的是RStudio(1.1.67+)的预览版,rstudioapi包中有更新的功能,showPrompt似乎可以完成您的目标。

connection <- dbConnect(
    driver,
    username = rstudioapi::showPrompt(
      title = "Username", message = "Username", default = ""
    ),
    password = rstudioapi::askForPassword(prompt = "Password"),
    dbname = "my.connection.string"
)

答案 1 :(得分:0)

对于较新版本的 rstudioapi::askForPassword,我注意到以下内容...

  • 如果您只在参数短语中包含字符串 username,则文本不会被屏蔽。
  • 包含 password 将严格执行屏蔽。

例如:

rstudioapi::askForPassword("Enter username") # <-- UNMASKED
rstudioapi::askForPassword("Enter password") # <-- MASKED

rstudioapi::askForPassword("Enter foobar xyz123 username") # <-- UNMASKED
rstudioapi::askForPassword("Enter foobar xyz123 username password") # <-- MASKED 

当然,我偶然发现了这一点,因为密码提示文本框会自动取消对用户名的掩码...可以在以下位置获得更多信息: