首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用javascript(coffeescript/jQuery)弹出的Google客户端身份验证

使用javascript(coffeescript/jQuery)弹出的Google客户端身份验证
EN

Stack Overflow用户
提问于 2013-04-08 11:16:20
回答 1查看 974关注 0票数 1

我在我的rails应用程序中使用oauth。

代码语言:javascript
复制
gem 'omniauth-facebook', '1.4.0'
gem "omniauth-google-oauth2"

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

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

google的客户端身份验证不起作用,否则我就无法得到它的处理。

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

代码语言:javascript
复制
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和密码,继续登录。

EN

回答 1

Stack Overflow用户

发布于 2013-04-13 14:49:39

我也有同样的问题,似乎无所不在的GoogleOAuth2不像facebook一样支持客户端身份验证。

在构建access_token时,无所不在的facebook创业板会检查签名请求是否存在,如果它有效,则使用request.params或cookie提供的access_token。否则,它将使用提供的access_token从Facebook查询authorization_code。

无所不在的GoogleOAuth2GEM只执行第二个操作,因为redirect_uri在初始和验证请求上必须是相同的,所以不能以这种方式使用gem的当前版本。

我在示例login中找到了一个分叉http://pivotallabs.com/facebook-and-googleplus-javascript-sdk-sign-in-with-devise-ror/,但是如果没有在服务器端验证它,从request.params读取access_token是不安全的。

更新

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15877679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档