2010-05-19 1 views
9

Authlogic에서 OpenId 인증을 사용하는 데 문제가 있습니다. open_id_authentication 플러그인을 변경하면 문제가 발생한 것으로 보입니다. 지금까지 읽은 것부터 보석 사용에서 플러그인 사용으로 전환해야합니다. 여기 Authlogic OpenID 통합

내가 Authlogic - 오픈 ID 통합 작업을 얻기 위해 지금까지 수행 내용은 다음과 같습니다

  1. 제거 관련 보석 :
    • authlogic
    • authlogic - OID
    • 랙 오픈 ID
    • 루비 -openid *
    • authlogic 샘플을 설치, 구성 및 시작했습니다. 신청서 (http://github.com/binarylogic/authlogic_example)--works). 이 필요한 :
    • authlogic를 설치 (2.1.3) 보석
    • 으로 environment.rb 파일에 의존성 (config.gem "authlogic")을 추가 ($ sudo는 보석 authlogic 설치).
    • 사용자 모델에 공개 ID 지원을 추가하기위한 마이그레이션이 추가되었습니다. 마이그레이션을 실행했습니다. 예상대로 추가 된 열
    • 은 UsersController 및 UserSessionsController를 변경하여 블록을 사용하여 각각을 저장합니다. (자식 설치 $ 스크립트/플러그인 : //github.com/rails/open_id_authentication.git을) : (openid_identifier f.text_field)
    • 설치 open_id_authentication 플러그인 새로운 사용자 세션
    • 변경 오픈 ID를 지원하기 위해 볼
    • authlogic-oid 플러그인 ($ script/plugin install git : //github.com/binarylogic/authlogic_openid.git)이 설치되어 있습니다. 플러그인 ($ script/plugin install git : //github.com/glebm/ruby)이
    • 설치되어 있습니다. -openid.git)
    • 다시 시작한 mongrel (CTRL-C; $ script/server)
  2. ,363,210

Mogrel 다음과 같은 오류 반환 시작하지 못했습니다 :

/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- rack/openid (MissingSourceFile) 
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require' 
    from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require' 
    from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:521:in `new_constants_in' 
    from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require' 
    from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/plugins/open_id_authentication/lib/open_id_authentication.rb:3 
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require' 
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require' 
    from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require' 
    from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:521:in `new_constants_in' 
    from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require' 
    from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/plugins/open_id_authentication/init.rb:5:in `evaluate_init_rb' 
    from ./script/../config/../vendor/rails/railties/lib/rails/plugin.rb:146:in `evaluate_init_rb' 
    from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/core_ext/kernel/reporting.rb:11:in `silence_warnings' 
    from ./script/../config/../vendor/rails/railties/lib/rails/plugin.rb:142:in `evaluate_init_rb' 
    from ./script/../config/../vendor/rails/railties/lib/rails/plugin.rb:48:in `load' 
    from ./script/../config/../vendor/rails/railties/lib/rails/plugin/loader.rb:38:in `load_plugins' 
    from ./script/../config/../vendor/rails/railties/lib/rails/plugin/loader.rb:37:in `each' 
    from ./script/../config/../vendor/rails/railties/lib/rails/plugin/loader.rb:37:in `load_plugins' 
    from ./script/../config/../vendor/rails/railties/lib/initializer.rb:348:in `load_plugins' 
    from ./script/../config/../vendor/rails/railties/lib/initializer.rb:163:in `process' 
    from ./script/../config/../vendor/rails/railties/lib/initializer.rb:113:in `send' 
    from ./script/../config/../vendor/rails/railties/lib/initializer.rb:113:in `run' 
    from /Users/craibuc/NetBeansProjects/authlogic_example/config/environment.rb:13 
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require' 
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require' 
    from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require' 
    from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:521:in `new_constants_in' 
    from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require' 
    from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/railties/lib/commands/server.rb:84 
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require' 
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require' 
    from script/server:3 

나는이 랙 오픈 ID 보석 관련이 의심을하지만 루비 - 오픈 ID 보석에 의존했다대로, 그것은 때를 제거 ruby-openid 보석이 삭제되었습니다. 아마도 이것은 플러그인으로 설치 될 수 있습니다.

이 문제에 대한 도움을 주시면 대단히 감사하겠습니다. OpenId 통합을 포기할 것입니다.

* ruby-openid (2.1.2)는 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8에 설치됩니다. 이것이 영향을 미치는지 확실하지 않습니다. 어쨌든, 나는 그것을 제거하는 방법 또는 내가해야한다면 확실하지 않다.

** 편집 **

문제의 원인이 될 수 /Library/Ruby/Gems/1.8/gems 디렉토리에있는 보석의 숫자가 나타납니다

:

  • authlogic-을 oid (1.0.4)
  • rack-openid (1.0.3)
  • 루비 오픈 ID (2.1.7)

질문 : - 왜 안 보석 list 명령 목록이 보석을합니까? - gem uninstall 명령으로이 보석을 제거하지 않는 이유는 무엇입니까?

답변

0

OSX에서 작동하는 방식이 확실하지 않지만 리눅스에서 보석을 일반 사용자로 설치하면 내 홈 디렉토리에 저장되고 sudo을 사용하여 설치하면 시스템 디렉토리로 이동합니다.

나는 또한 보석에 대한 사용 권한 문제가 있었으며 명시 적으로 특정 위치에서 보석을로드하기 위해 루비를 얻으려면 내 쉘에 GEM_PATH을 설정해야했습니다.

  • sudo gem list을 실행하면 이러한 오래된 보석이 나타 납니까?
  • 보석을 홈 디렉토리에 설치 했습니까? /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8에 설치 했습니까?

편집 :

좋아, 내가는 irb 세션을 불 때 당신 require 보석 명시 적으로 어떻게 볼 것입니다.

$ irb 
> require 'authlogic' 
> require 'authlogic-oid' 
... 

편집 : authlogic-oid 보석을 설치, 당신은 sudo gem list을 실행할 때 나타납니다

경우, 수퍼 유저로 irb를 시작하려고합니다. authlogic-oid이 필요하면 권한 문제가 발생합니다. 일부 또는 모든 젬 파일은 읽기 전용입니다.

그래도 작동하지 않으면로드 경로에 문제가있을 가능성이 있습니다. 설치된 보석을 찾는 위치에 대해 ruby가 혼란 스럽습니다. 이 경우 귀하의 authlogic 보석은 아마도 authlogic-oid 보석과 다른 위치에 설치되었을 것입니다.

+0

sudo gem 목록은이 보석을 나열하지 않습니다. 보석은 /Library/Ruby/Gems/1.8/gems, /craibuc/.gem/ruby/1.8/gems 및 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr 위치에 설치되어 있습니다. /lib/ruby/gems/1.8/gems. – craig

+0

보석의 디렉토리를 삭제하는 것만큼 쉽게 보석을 제거합니까? – craig

+0

예를 들어, 다른 곳에서도 실행 파일을 설치하지 않은 경우 (예 :'rails' 및'haml '과 같은 경우) – nfm

3

나는 지금 당장 같은 문제를 겪었지만 rack-openid gem을 설치하는 것으로 수정했습니다. 문서에 필요한 라이브러리에 rack-openid를 추가하도록 요청합니다.

3

나는 당신이했던 것과 같은 번거 로움을 겪었습니다. 작업 어쩌면 당신은 그냥이 체크 아웃해야합니다, 가지고 모든이가 너무 오픈 ID 자동 등록과 같은 유래를 포함

http://github.com/shripadk/authlogic_openid_selector_example

. 원하는 경우 체크 아웃 전에 사용해 볼 수있는 heroku의 예제 앱을 호스팅했습니다.