Google oauth在本地开发中受阻

时间:2014-08-27 14:15:14

标签: ruby-on-rails coffeescript oauth-2.0 google-oauth

我正在使用rails / ember应用程序中使用omniauth,而且我在google登录时遇到了一些问题。我收到弹出窗口以允许该网站对我进行身份验证,但点击后接受请求炸弹:

Uncaught SecurityError: Blocked a frame with origin "https://localhost:3001" from 
accessing a frame with origin "https://accounts.google.com". Protocols, domains, 
and ports must match. 

我正在使用自签名证书在本地开发中获取HTTPS,但如何在本地测试此身份验证逻辑?

Coffeescript试图登录:

$ ->
  $.ajax
    url: '//apis.google.com/js/client:plus.js?onload=gpAsyncInit'
    dataType: 'script'
    cache: true
window.gpAsyncInit = ->
  $(".google-login").click (e) ->
    e.preventDefault()
    gapi.auth.authorize
      immediate: false
      response_type: "code"
      client_id: "<%= ENV["GOOGLE_CLIENT_ID"] %>"
      scope: "email profile"
    , (response) ->
      if response and not response.error
        jQuery.ajax
          type: "POST"
          url: "/auth/google_oauth2/callback"
          dataType: "json"
          data: response
          success: (json) ->
            alert 'success!'
      else
        alert response.error

1 个答案:

答案 0 :(得分:0)

尝试使用有效域替换localhost,例如。 mydevserver.me.com。您可以在/ etc / hosts中将mydevserver.me.com指向127.0.0.1。您还需要将http://mydevserver.me.com/mycallback作为回调网址添加到Google API控制台