2013-09-21 3 views
0

Я пытаюсь использовать login_with_oauth2 с google_drive, но я не могу понять, что такое код авторизации в # google_drive.rb документGoogle Диска рубин апи Войти с OAuth2, что «код авторизации»

client = OAuth2::Client.new(
    "522807807986-gjotv2np4tdqp4do8sq0gds0p2bqugtf.apps.googleusercontent.com", 
    'fmWlfzejvx_UtS3CKq2Sl-WQ', 
    :site => "https://accounts.google.com", 
    :token_url => "/o/oauth2/token", 
    :authorize_url => "/o/oauth2/auth" 
) 

auth_url = client.auth_code.authorize_url(
    :redirect_uri => "urn:ietf:wg:oauth:2.0:oob 
http://localhost" 
) 

# Redirect the user to auth_url and get authorization code from redirect URL. 

authorization_code = '' 
auth_token = client.auth_code.get_token(
    authorization_code, :redirect_uri => "urn:ietf:wg:oauth:2.0:oob 
http://localhost") 
session = GoogleDrive.login_with_oauth(auth_token.token, 'http://localhost:8087') 

ответ

0

OAuth2 - двухэтапный механизм авторизации. AFAIU, ваш код просто скопирован с official documentation, но, к сожалению, это не рабочий код. Это просто пример. Взгляните на комментарии отмечен красного там: это очень важно:

# Redirect the user to auth_url and get authorization code from redirect URL. 

Вы должны указать правильный Pingback URI для сервера Google, чтобы отправить ответ с вашим authorization_code (сейчас там говорится localhost, что проблемно чтобы Google понял ваш IP-адрес, чтобы отправить вам отзыв.)

Подводя итоги: вы предоставляете Google учетные данные, он отвечает JSON, содержащий ваш authorization_code по указанному вами адресу. По завершении этой фазы вы можете продолжить запрос auth_token.

+2

Я могу вручную получить authorization_code путем ввода в терминал: google-chrome auth_url, как получить его автоматически? – user1637972

Смежные вопросы