0

나는 웹 애플리케이션을 가지고 있는데, 핵심 기능에는 아마존에서 자동화 된 CRUD 작업을 수행하는 것이 포함됩니다. 정확한 사용자 로그인과 비밀번호가 주어지면, 앱 사용자는 아마존에서 주소를 삭제하고 추가 할 수 있습니다. 자동화 작업을 위해 mozilla 에이전트와 함께 selenium 웹 드라이버를 사용하고 있습니다. 현재 사용자 이름과 암호는 figurearo gem을 사용하여 application.yaml 파일에 하드 코딩되어 있습니다. 내가 원하는 것은 자신의 아마존 사용자 이름과 암호를 입력 할 수 있도록 앱에 액세스하는 모든 사용자를위한 것입니다. 따라서 주소 삭제 및 제거 프로세스가 자신의 아마존 계정에서 발생합니다.레일즈 애플리케이션에서 런타임 (프로덕션)에 환경 변수를 설정할 수 있습니까?

양식을 통해 현재 사용자의 로그인과 암호를 캡처 할 수있는 방법이 있습니까 (물론 동의하에).이 암호를 런타임에 환경 변수 secrets.yaml에 설정할 수 있습니까? 그래서 로그인 이름은

amazon_user_name: <%= ENV["SECRET_USER_NAME"] %> 

이되는 암호는

amazon_pass_word된다 : <퍼센트 = ENV [ "SECRET_PASS_WORD"] %>

또는이 완료를 얻기 위해 전체 더 깔끔한 방법이 ?

더 자세히 설명하고 간단히 설명하면 : 사용자가 앱을 통해 자신의 아마존 계정에 로그인 할 수 있도록 허용하여 내 앱이 아마존에서 주소 자동화 (일괄 적으로 배송 주소 추가 및 삭제)를 수행 할 수 있습니다. 계정. 이를 달성하기위한 안전한 수단은 언제나 환영합니다.

+0

저장된 사용자 이름/비밀번호 테이블을 만들 수 없습니까? 이렇게하면 데이터베이스에서 암호를 암호화 할 수 있습니다. –

답변

1

사용자별로 설정하는 것이 가장 쉬운 방법은 원하는 경우 사용자 세션에서 설정하는 것입니다. 이 같은

:

session[:super_secret_pass] = 'somepassword'

는 당신이 그것을 호출하는 곳으로 컨트롤러에서 아래로 전달합니다.

+0

그냥 머리를 위로 ... 대부분의 레일 보안 권고 세션에서 이러한 비밀을 저장하지 말. –

+0

확실한 - 사용자의 모델에 소금 또는 소금을 넣은 채 데이터베이스에 저장할 수 있습니다. 환경 변수가 아니라 사용자가 특정하지 않는 앱 일뿐입니다. – dstull

+0

그는 레일 환경 외부에서 정보를 사용하려고합니까? –