나는 최근에 사용자 인증을 위해 내 레일 5 응용 프로그램 중 하나에서 omniauth-google-oauth2 보석을 사용했으며 제대로 작동합니다. 이 응용 프로그램은 특정 사용자 그룹을 대상으로합니다. 제 경우에는 대학생입니다. 모든 사용자는 @ait.asia 또는 @ait.ac.th으로 끝나는 이메일 주소를 가진 Google 계정을 가지고 있습니다.
docs에 따라 인증을 구현했습니다. 여기 내 application_controller.rb class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null
omniauth-google-oauth2을 사용하여 인증 된 경로 /me을 만들려고합니다. 지금까지 라이브러리를 로그인 및 로그 아웃하도록 설정 했으므로 정상적으로 작동합니다. 그러나 사용자가 로그인했을 때만 특정 경로에 액세스 할 수 있도록하고 싶습니다. this snippet을 찾았으며 설정에 맞게 약간의 변경 작업을 수행했습니다. application
RSpec 및 OmniAuth를 사용하여 인증 된 컨트롤러를 테스트하려고합니다. 나는 그들의 위키에있는 integration testing 가이드를 따라 갔다. Failure/Error:
where(provider: auth.provider, uid: auth.uid).first_or_initialize.tap do |user|
use