rstudioapi askForPassword 不屏蔽用户名输入

rstudioapi askForPassword without masking for username entry

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

我正在构建一个可以与我的团队共享的功能,用于使用 ROracle 包连接到我们的 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

想资助一个不屏蔽密码但弹出相同提示的解决方案(如果可能的话,一行漂亮的代码...)

如果您使用的是 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"
)

对于较新版本的 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 

我当然是偶然发现这个的,因为 pw 提示文本框会自动取消屏蔽用户名...可能有更多信息: