'인증'에 해당되는 글 3건

  1. 2013.05.02 Omniauth - 페이스북 로그인 에러 901
  2. 2013.05.02 Omniauth - 페이스북 로그인 에러 191
  3. 2013.04.27 Devise - 로그인


코드번호 901에러


이 에러는 페이스북에 등록한 앱이 sandbox 모드일 때 일어난다.


 Sandbox Mode 란 앱 관계자만 페이스북을 통해서 접속이 가능한 모드이다.


이럴 때는 다음과 같이 sandbox 모드를 해제해준다.




그러면 다음과 같이 모두에게 접속가능해진다.






참고자료





'Ruby On Rails' 카테고리의 다른 글

TDD - fixture  (0) 2013.05.13
HTML <a> 태그와 ERB의 link_to 변환  (0) 2013.05.02
Omniauth - 페이스북 로그인 에러 901  (0) 2013.05.02
Omniauth - 페이스북 로그인 에러 191  (0) 2013.05.02
Bootstrap - navbar-form  (0) 2013.05.01
Omniauth - 페이스북 로그인  (0) 2013.05.01
Posted by 하남각목



코드번호 191 에러

이 에러는 페이스북 앱에서 Site URL이 잘못지정된 경우에 생기는 오류이다.

테스트시에는 localhost:3000과 같은 주소를 쓸 수 있으나 실제 서버에서 사용하려면 url을 적어줘야 한다.

  로컬에서 테스트할 때는 서버 url을 적을 시 같은 오류가 뜬다. 반드시 배포시에만 바꿔주자.



오류.


변경.


  서버 ip주소를 적어도 같은 오류가 생긴다. 반드시 도메인 네임을 써줘야 한다.

  아직 도메인을 구입하지 않았다면 /etc/hosts 에서 도메인을 지정해 줄 수 있다.




참고자료







Posted by 하남각목



Devise 2.0은 Rails 3.1이상에서만 사용가능하다.

Devise를 레일즈에서 사용하려면 다음을 Gemfile에 넣으면된다.

  gem 'devise'



다음으로 bundle 커맨드 명령어로 인스톨해준다.

bundle install



인스톨이 완료되면 generator를 사용하여 앱에 설치한다.

rails generate devise:install


generator는 devise의 모든 환경설정 옵션들을 담고있는 initializer를 설치한다.

위치는 config/initializers/devise.rb이다.


그 다음으로 수동적으로 해야 할 일이 있다.

1. config/environments/development.rb에 디폴트 url을 설정해 준다.

  config.action_mailer.default_url_options = { :host => 'localhost:3000' }

  단, production 모드일 경우 :host가 실제 호스트가 되게 설정한다.


2. config/route.rb에 루트 url을 설정해 준다.

  예를 들어,

 root :to => "home#index"


3. app/views/layouts/application.html.erb에 flash 메세지를 표시하는 코드를 삽입한다.

  <p class="notice"><%= notice %></p>

  <p class="alert"><%= alert %></p>


4. Heroku에서 빌드 중이라면 config/application.rb에 다음을 설정한다.

  config.assets.initialize_on_precompile = false


5. 뷰를 커스터마이징 하고 싶다면 devise view를 복사한다.

  rails generate devise:views




다 했으면 devise model을 추가한다.

  rails generate devise MODEL

  MODEL은 실제 모델 클래스 이름으로 대체한다. 보통 User나 Admin으로 한다.



그 다음 데이터베이스 마이그레이션을 실행한다.

이는 config/route.rb에 devise 컨트롤러의 위치를 자동으로 설정해준다.

  rake db:migrate



이 시점에서 서버를 재실행해준다.



로그인을 원하는 컨트롤러에 다음 코드를 삽입한다. (클래스 선언 바로 아래에 선언해준다.)

  before_filter :authenticate_user!

  devise 모델명이 member라면 before_filter :authenticate_member!라고 해야한다.



해당 컨트롤러에 접속하면 다음과 같은 로그인 페이지를 볼 수 있다.




참고자료

1. devise - github


Posted by 하남각목