1

Does anyone know how I can get the credentials of the logged user in a heroku dyno?

Context: We are trying to log access to Heroku production rails console. People access it via heroku run or heroku exec. Heroku does authenticate the users executed the command, however, I'm unable to retrieve this information once the rails console is started.

It looks like heroku cli is not available in the dyno, and whoami returns dyno.

Eg:

$ heroku run rails c -a opt-prod

<in rails console> 

irb(main):001:0> ENV
irb(main):001:0> `whoami`
4

1 回答 1

2

我们联系了 Heroku,但没有选择这样做。反而,

正在运行的测功机不包含有关启动该过程的用户的信息,因此无法从 Heroku 上的测功机内部获取“当前用户”。

但是,一种解决方法是获取当前的 Heroku CLI 用户,并在启动时将其与控制台命令一起发送。像这样的东西会起作用:

CURRENT_HEROKU_USER="$CURRENT_HEROKU_USER" rails c --app my-app-name

> Running CURRENT_HEROKU_USER=chap@heroku.com rails c...

ENV['CURRENT_HEROKU_USER']

> "chap@heroku.com" 

这种方法的缺点是无法从测功机内部验证该值。但是,您可以使用您的应用程序日志来追溯验证信息。API 将在您的应用程序日志中记录启动控制台进程的用户:

CURRENT_HEROKU_USER=chap@heroku.com rails c by user chap@heroku.com

很抱歉,我们在这里没有更好的答案。

如果我能提供更多帮助,请告诉我。

于 2019-06-23T16:34:32.613 回答