[Rails] devise+omniauth에서 페이스북, 구글 로그인 오류 구현
개요
다음은 Rails5에서 devise,omniauth를 사용하여 로그인 기능을 실현할 때 발생하는 오류를 해결하는 방법을 총괄하였다.같은 방법으로 잘못을 해결했으면 좋겠다.
컨디션
사용한gem gem 'dotenv-rails'
gem 'omniauth-rails_csrf_protection'
gem 'omniauth-facebook'
gem 'omniauth-google-oauth2'
많은 글들이omniauth를 사용하여 이루어졌지만, 그 취약성을 지적하여omniauth-railscsrf_보호기를 사용하고 있습니다.
공식 문서 여기 있습니다.
https://github.com/cookpad/omniauth-rails_csrf_protection
문장을 인용하다
https://qiita.com/NT90957869/items/2a3ce18dedf93ccf2bdc
오류 중 하나인 Authentication passthru입니다.
링크에서 날아올 때 이런 화면이 나와요.
해결책
Qita 기사대로 했는데!왜!
내 생각에는 그렇다.
문서를 잘 읽어라.
이번에 사용한gem은omniauth-rails입니다.csrf_보호기입니다.
공식 문서를 읽은 후,method를 지정할 필요가 있음을 발견하였다
You will then need to verify that all links in your application that would initiate OAuth request phase are being converted to a HTTP POST form that contains authenticity_token value. This might simply be done by changing all link_to to button_to, or use link_to ..., method: :post.
따라서 페이스북 같은 링크는 다음과 같다.
@_new.html.haml = link_to user_facebook_omniauth_authorize_path , method: :post
오류 2 JWT: InvalidIatError
그 이유는'OS의 시간적 편차'라고 한다.
omniauth-google-oauth2의 공식 문서에는 다음과 같은 기술이 있다.
skip_jwt: Skip JWT processing. This is for users who are seeing JWT decoding errors with the iat field. Always try adjusting the leeway before disabling JWT processing.
그래서 다음과 같이 보충하겠습니다.config.omniauth :google_oauth2, ENV['GOOGLE_CLIENT_ID'], ENV['GOOGLE_CLIENT_SECRET'], skip_jwt: true
공식 문서
https://github.com/zquestz/omniauth-google-oauth2
Reference
이 문제에 관하여([Rails] devise+omniauth에서 페이스북, 구글 로그인 오류 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/pharma_tech3/items/385100d42177864d7ecf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
사용한gem gem 'dotenv-rails'
gem 'omniauth-rails_csrf_protection'
gem 'omniauth-facebook'
gem 'omniauth-google-oauth2'
많은 글들이omniauth를 사용하여 이루어졌지만, 그 취약성을 지적하여omniauth-railscsrf_보호기를 사용하고 있습니다.
공식 문서 여기 있습니다.
https://github.com/cookpad/omniauth-rails_csrf_protection
문장을 인용하다
https://qiita.com/NT90957869/items/2a3ce18dedf93ccf2bdc
오류 중 하나인 Authentication passthru입니다.
링크에서 날아올 때 이런 화면이 나와요.
해결책
Qita 기사대로 했는데!왜!
내 생각에는 그렇다.
문서를 잘 읽어라.
이번에 사용한gem은omniauth-rails입니다.csrf_보호기입니다.
공식 문서를 읽은 후,method를 지정할 필요가 있음을 발견하였다
You will then need to verify that all links in your application that would initiate OAuth request phase are being converted to a HTTP POST form that contains authenticity_token value. This might simply be done by changing all link_to to button_to, or use link_to ..., method: :post.
따라서 페이스북 같은 링크는 다음과 같다.
@_new.html.haml = link_to user_facebook_omniauth_authorize_path , method: :post
오류 2 JWT: InvalidIatError
그 이유는'OS의 시간적 편차'라고 한다.
omniauth-google-oauth2의 공식 문서에는 다음과 같은 기술이 있다.
skip_jwt: Skip JWT processing. This is for users who are seeing JWT decoding errors with the iat field. Always try adjusting the leeway before disabling JWT processing.
그래서 다음과 같이 보충하겠습니다.config.omniauth :google_oauth2, ENV['GOOGLE_CLIENT_ID'], ENV['GOOGLE_CLIENT_SECRET'], skip_jwt: true
공식 문서
https://github.com/zquestz/omniauth-google-oauth2
Reference
이 문제에 관하여([Rails] devise+omniauth에서 페이스북, 구글 로그인 오류 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/pharma_tech3/items/385100d42177864d7ecf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
gem 'dotenv-rails'
gem 'omniauth-rails_csrf_protection'
gem 'omniauth-facebook'
gem 'omniauth-google-oauth2'
링크에서 날아올 때 이런 화면이 나와요.
해결책
Qita 기사대로 했는데!왜!
내 생각에는 그렇다.
문서를 잘 읽어라.
이번에 사용한gem은omniauth-rails입니다.csrf_보호기입니다.
공식 문서를 읽은 후,method를 지정할 필요가 있음을 발견하였다
You will then need to verify that all links in your application that would initiate OAuth request phase are being converted to a HTTP POST form that contains authenticity_token value. This might simply be done by changing all link_to to button_to, or use link_to ..., method: :post.
따라서 페이스북 같은 링크는 다음과 같다.
@_new.html.haml
= link_to user_facebook_omniauth_authorize_path , method: :post
오류 2 JWT: InvalidIatError
그 이유는'OS의 시간적 편차'라고 한다.
omniauth-google-oauth2의 공식 문서에는 다음과 같은 기술이 있다.
skip_jwt: Skip JWT processing. This is for users who are seeing JWT decoding errors with the iat field. Always try adjusting the leeway before disabling JWT processing.
그래서 다음과 같이 보충하겠습니다.config.omniauth :google_oauth2, ENV['GOOGLE_CLIENT_ID'], ENV['GOOGLE_CLIENT_SECRET'], skip_jwt: true
공식 문서
https://github.com/zquestz/omniauth-google-oauth2
Reference
이 문제에 관하여([Rails] devise+omniauth에서 페이스북, 구글 로그인 오류 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/pharma_tech3/items/385100d42177864d7ecf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
config.omniauth :google_oauth2, ENV['GOOGLE_CLIENT_ID'], ENV['GOOGLE_CLIENT_SECRET'], skip_jwt: true
Reference
이 문제에 관하여([Rails] devise+omniauth에서 페이스북, 구글 로그인 오류 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/pharma_tech3/items/385100d42177864d7ecf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)