2017-10-30 20 views
1

내 레일 앱에서 사용자의 조직과 저장소를 나열하고 싶습니다. 내가 Github에서에서 토큰을 획득하면 내가 Github에서 그렇게 omniauth - GitHub를 사용하여 인증하고 나는이 작업을 수행 :모든 조직 구성 양식 목록 작성기를 사용하여 Github

client = Octokit::Client.new(:access_token => token) 
client.orgs 

omniauth.rb

provider :github, ENV['GITHUB_CLIENT_ID'], ENV['GITHUB_CLIENT_SECRET'] 그것은 오류 GET https://api.github.com/user/orgs: 403 - You need at least read:org scope or user scope to list your organizations. // See: https://developer.github.com/v3/orgs/#list-your-organizations

에게 던졌습니다

에서

그래서 이니셜 라이저에 추가하고 서버를 다시 시작하십시오 :

provider :github, ENV['GITHUB_CLIENT_ID'], ENV['GITHUB_CLIENT_SECRET'], scope: 'read:org'

하지만 같은 오류가 발생합니다.

은 나뿐만 아니라 Octokit 클라이언트의 범위를 제공하는 시도 :

client.create_authorization({:idempotent => true, :client_id => 'xxxx', :client_secret => 'yyyy', :scopes => ["read:org"]})

하지만 기본 인증이 여기에 허용되는 메시지가 표시됩니다.

내가 여기에 무엇을 놓치고 있습니까?

+0

앱에서 사용하는 OAuth 토큰에 대한 올바른 읽기 권한을 설정 했습니까? (https://github.com/settings/developers) – MrYoshiji

+0

모든 것을 읽기 전용으로 설정 했으므로 액세스 권한이 있어야하지만 403 오류 메시지가 표시됩니다. 다른 아이디어? – jedi

답변

1

아마도 'read : org'범위에 대한 권한을 부여하지 않고 로그인했을 것입니다. 다시 로그인하여 새로 추가 된 범위에 대한 권한을 부여해야하는지 확인하는 것이 좋습니다. 레일스/토큰에있는 데이터베이스와 GitHub OAuth 플로우가 일치하지 않을 수도 있습니다.

+0

로그 아웃을 시도했지만 앱에서 다시 인증했지만 동일한 오류가 발생합니다. 나는 그들이 세션이 지속 적이라고 생각하지 않기 때문에 데이터베이스에 토큰을 저장하지 않습니다. – jedi

0

심층적 인 조사를 통해 기본 조직 (사용자 이름과 암호) 또는 OAuth token이 필요하므로 가져 오는 조직에서 토큰을 생성 했으므로 이제는 제대로 작동합니다.