'omniauth-facebook'에 해당되는 글 3건

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


코드번호 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 하남각목

댓글을 달아 주세요


Omniauth를 이용한 페이스북 로그인을 알아보자.

개발자는 다음을 우선적으로 시행해야 한다.

  1. 페이스북에 앱을 등록해서 App ID와 App Secret을 얻어야한다.
  2. Website with Facebook Login을 사용한다고 설정한다.




다 됐다면 다음을 진행하자.
먼저 Gemfile에 다음 코드를 삽입한다.
  gem 'omniauth-facebook'



그 다음 'bundle install'을 실행하자.

그러면 자동으로 oauth2, omniauth, omniauth-oauth2, omniauth-facebook을 설치할 것이다.

 


그 다음 프로젝트폴더/config/initializers/devise.rb 파일에 다음 코드를 입력하자.


  require "omniauth-facebook"

  config.omniauth :facebook, "APP_ID", "APP_SECRET"



그 다음 devise에서 만들어놓은 user 모델에 다음 코드를 삽입하자.

  devise :omniauthable



그 다음 앱에 접속하면 다음과 같이 'Sign in with Facebook' 링크를 볼 수 있을 것이다.



지금 이 링크를 클릭하면 다음과 같은 에러를 볼 수 있는데,

이는 페이스북 인증이 성공적으로 이루어 졌을 시 불러질 콜백 메서드를 만들어 주지 않았기 때문이다.




이를 해결하기 위해 다음을 실행하자.

우선 프로젝트폴더/config/locales/routes.rb 파일에 다음 코드를 넣어주자.

  devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" }




그 다음으로 프로젝트폴더/app/controllers/ 폴더에 users 폴더를 만든다.

그리고 프로젝트폴더/app/controllers/users/ 폴더에 omniauth_collbacks_controller.rb 파일을 만든다.

그러고 다음 코드를 넣어주자.




  페이스북 정보데이터 => request.env["omniauth.auth"]

  유저가 유효하면 로그인.

  그렇지 않으면 회원가입 폼으로 이동.




그 다음 프로젝트폴더/app/models/user.rb 파일에 다음 코드를 넣어주자.


  같은 이메일주소를 가진 회원이 없다면 새로 만든다.

  이때 이메일과 이름은 페이스북 정보를 이용하고 비밀번호는 랜덤으로 생성한다.



그 다음 프로젝트폴더/app/models/user.rb 파일에 다음 코드를 넣어주자.


 유저가 회원가입전에 생성됐을 때, 세션에서 이메일 정보를 가져온다.






참고자료

1. omniauth-facebook - Github

2. Facebook Authentication - Rails Cast

3. Adding Facebook Auth - Ruby On Rails Outsourcing 



Posted by 하남각목

댓글을 달아 주세요