【问题标题】:Oauth Google client-side authentication from a pop-up using javascript(coffeescript/jQuery)使用 javascript(coffeescript/jQuery) 从弹出窗口进行 Oauth Google 客户端身份验证
【发布时间】:2013-03-30 10:49:31
【问题描述】:

我在我的 Rails 应用程序中使用 oauth gem。

gem 'omniauth-facebook', '1.4.0'
gem "omniauth-google-oauth2"

Facebook 客户端身份验证工作正常。我跟着,

http://railscasts.com/episodes/360-facebook-authentication

google 的客户端身份验证不起作用或我无法处理它。

我看到这个咖啡脚本负责 facebook 客户端身份验证,

jQuery ->
  $('body').prepend('<div id="fb-root"></div>')

  $.ajax
    url: "#{window.location.protocol}//connect.facebook.net/en_US/all.js"
    dataType: 'script'
    cache: true


window.fbAsyncInit = ->
  FB.init(appId: 145280228983243, cookie: true)

  $('#sign_in').click (e) ->
    e.preventDefault()
    FB.login (response) ->
      window.location = '/auth/facebook/callback' if response.authResponse

  $('#sign_out').click (e) ->
    FB.getLoginStatus (response) ->
      FB.logout() if response.authResponse
    true

google客户端认证应该怎么做?

我只想在用户点击“使用 google 登录”时弹出一个窗口 应该出现并询问用户 ID 和密码,在询问之前,它 应该检查用户信息是否已经在 浏览器(客户端),如果可用,不要提示输入用户 ID 和 密码,继续登录。

【问题讨论】:

    标签: ruby-on-rails-3 popup coffeescript client-side


    【解决方案1】:

    我有同样的问题,而且omniauth-google-oauth2 似乎不像facebook gem 那样支持客户端身份验证。

    omniauth-facebook gem 在构建 access_token 时会检查签名请求是否存在以及是否有效,然后它使用 request.params 或 cookie 提供的 access_token。否则,它会使用提供的授权码从 Facebook 查询 access_token。

    omniauth-google-oauth2 gem 只执行第二个操作,因为 redirect_uri 在初始和验证请求中必须相同,因此您不能以这种方式使用 gem 的当前版本。

    我找到了一个 fork https://github.com/pivotal-geostellar/omniauth-google-oauth2/tree/client_login 和示例 http://pivotallabs.com/facebook-and-googleplus-javascript-sdk-sign-in-with-devise-ror/,但是如果没有在服务器端验证它,从 request.params 读取 access_token 是不安全的。

    更新

    我找到了一种通过 id_token 验证 access_token 的方法,并向 gem https://github.com/zquestz/omniauth-google-oauth2/pull/50 发出拉取请求

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-18
      • 1970-01-01
      • 2011-10-20
      • 1970-01-01
      • 2012-12-25
      • 2015-01-06
      相关资源
      最近更新 更多