HANCO

rails and figaro and device 본문

웹개발/Ruby on Rails

rails and figaro and device

HANCO 2018. 8. 13. 14:39

안녕하세요 멋쟁이 사자처럼 박준영입니다.


Figaro라는 gem파일에 대해서 들어보셨나요?


오늘은 이 gem 파일에 대한 정리를 해보겠습니다.


오늘은 figaro에 대한 정리이니 device gem에 대한 설명은 생략하겠습니다.


Figaro의 자세한 설명은


https://github.com/laserlemon/figaro

이곳에 전부 정리되어 있는데요


쉽게 말해 Oauth를 사용하는데 보안을 생각해 Client_ID나 Secret_Key 값을 

깃헙에 올리거나 호스팅시 노출되지 않게 하는 것입니다.


호스팅시에 저러한 값들이 있으면 과금이 부여된다고 하니 과금 부여도 막아줄 수 있겠습니다.


Figaro gem 사용법은


#gemfile에 

#figaro 사용 명시

gem "figaro"

그리고


 #bash에 입력

bundle install


#figaro 사용시 필요한 application.yml 파일이 생성됩니다.

bundle exec figaro install



Config/application.yml 파일이 생성되어집니다.


Figaro 사용법


#config/application.yml


client_id: "123123"

client_secret: "ABCCDAB"




#config/initialize/device.rb


config.omniauth :google_oauth2, ENV["client_id"], ENV["client_secret"]



위의 코드처럼 client_id, client_secret와 같은 변수를 통한 값을 넣을 수 있습니다.

좋은 점은 외부에서는 저 값을 확인 할 수 없다는 것입니다.


application.yml의 값은 .gitignore 파일에 추가되어 호스팅시에도

외부에서 그 내용을 확인할 수가 없습니다.





ENV란?


위 코드에서 env는 간단한 키나 값등을 뜻하며 env를 

이용해 값 들에 대한 결과를 다르게 적용할 수 있습니다.


#config/application.yml


client_id: "123123"




#config/initialize/device.rb


env["client_id"]        # => "123123"

env.key?["client_id"]        #=> TRUE


env["key or value"]는 이러한 기본구조를 가지며


env.key?["key or value"]의

 구조를 사용해 true or false의 값을 얻어낼 수 있습니다.


정리완료