2017-04-21 3 views
3

Google 로그인에 대해 설정 + omniauth를 설정했습니다. 웹에서 잘 작동합니다. 이제 iOS/Android 클라이언트에 oauth 로그인을 통합하는 방법을 모색 중입니다.Omniauth Strategy Outside Devits

나는 https://developers.google.com/identity/sign-in/ios/backend-auth을 따라 왔으며 oauth에 사용중인 라이브러리가 다음과 같은 것을 발견했습니다 (https://github.com/zquestz/omniauth-google-oauth2/blob/master/lib/omniauth/strategies/google_oauth2.rb).

정상적인 웹 워크 플로우 (예 : rails console) 외부에서 옴니 아쓰 전략을 사용하여 의사 request.env["omniauth.auth"]을 만들 수 있는지 확실하지 않습니다. 그게 가능한가? 설명서마다 https://developers.google.com/identity/sign-in/ios/backend-auth#using-a-google-api-client-library Ruby에서 동일한 기능을 수행하고 싶습니다. (Devise를 직접 사용하면 불분명합니다).

+0

당신은 몇 가지 코드를 제공해야 할 것입니다, 지금까지 시도 것의 예를 들어 어떤 종류의, 또는 당신이 달성하고자하는 것에 대한 철저한 설명. 의사 요청 객체를 만들 수 있습니까? 물론 구조체를 만드십시오. 그러나 당신이 그걸 가지고 무엇이든 할 수 있는지 여부는 당신이하려는 일에 달려 있습니다. – anothermh

+0

@anothermh 몇 가지 세부 정보를 추가했습니다. – Stussa

답변

-1

콘솔에서 요청을 시뮬레이션하는 것은 매우 쉽습니다. 당신은 쉽게 콘솔이 제공하는 app 변수에 요청을 할 수 있습니다 : 인증 처리에 관해서는

app.get('/') # => 200 
app.response # => #<ActionDispatch::TestResponse:0x007fc73e4db220> 

는 표준 레일 응용 프로그램을 웹에서 쿠키/세션 기반 인증 전략을 사용합니다. 처음으로 인증을 한 후에는 사용자와 서버가 각 요청에 따라 앞뒤로 전달할 세션 정보 (종종 쿠키)로 저장되는 정보도 있습니다.

모바일 클라이언트는 쿠키를 사용하지 않으므로 다른 인증 전략 (token-based authentication)이 필요합니다. 여기

Omniauth와 함께 일하는 것이 높은 수준의 구현 :

  1. 사용자는
  2. 응용 프로그램
  3. 응용 프로그램 토큰 서명 제공하는 자격 증명을 처리하는 Omniauth 엔드 포인트에 요청을하여 Omniauth의 proivder을 통해 액세스를 요청 클라이언트에게
  4. 클라이언트는 해당 토큰을 저장하고 모든 요청과 함께 보냅니다.
  5. 서버가 토큰을 확인하고 데이터로 응답합니다.

모바일 요청을 처리하려면 제공 업체 Omniauth gem의 작은 글자를 따르도록주의해야합니다.

토큰 인증은 Devise에 구워야했지만 제거되었습니다. 다행히, 토큰 인증이 고안에 추가 몇 가지 보석이 있습니다