'인증'에 해당되는 글 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 - 로그인

Ruby On Rails 2013. 4. 27. 22:59



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 하남각목

댓글을 달아 주세요