`
wuhuizhong
  • 浏览: 682318 次
  • 性别: Icon_minigender_1
  • 来自: 中山
社区版块
存档分类
最新评论

使用Google账户登录的实现代码

    博客分类:
  • ROR
阅读更多

Gemfile为:

gem 'ruby-openid'
gem 'rack-openid'

 sessions_controller.rb的代码:

class SessionsController < ApplicationController

  def new
    flash[:returnurl] = params[:returnurl] if params[:returnurl]
    response.headers['WWW-Authenticate'] = Rack::OpenID.build_header( #build身份验证header,跳转到OpenID认证url
        :identifier => "https://www.google.com/accounts/o8/id", #这里hard code了Google的OpenID url,测试后会加上别的如新浪围脖/豆瓣等
        :required => ["http://axschema.org/contact/email"], #返回OpenID帐号的email
        :return_to => sessions_url, #返回为post create action
        :method => 'POST')
    head 401 #状态码为401
  end

  def create
    if openid = request.env[Rack::OpenID::RESPONSE]
      case openid.status
      when :success
        ax = OpenID::AX::FetchResponse.from_success_response(openid)
        identify_url = openid.display_identifier
        email = ax.get_single('http://axschema.org/contact/email') # 得到OpenID帐号的email
        user = User.where(:email => email).first || User.new
        user.email = email
        user.identify_url = identify_url
        log_in(user)
        redirect_to(flash[:returnurl] || root_path)
      when :failure
        render :action => 'problem'
      end
    else
      redirect_to new_session_path
    end
  end

end
 
分享到:
评论

相关推荐

    google账户管理 4.0.4-299849

    谷歌账户管理4.0.4-299849是Google为Android设备提供的一项核心服务,主要用于处理用户登录和管理Google账户的相关功能。GoogleLoginService.apk是这个服务的可执行文件,它包含了实现这些功能的代码和资源。在这个...

    使用google身份验证器实现动态密码验证java demo

    总结,使用Google身份验证器实现在Java中的动态密码验证,可以极大地提高用户账户的安全性,防止恶意攻击。通过生成密钥、配置客户端、验证动态密码等步骤,我们可以构建一个完整的安全登录系统。在实际开发中,还...

    c#使用谷歌身份验证GoogleAuthenticator

    在C#中实现这个功能,可以使用开源库如`Authenticator`或`GoogleAuth.Net`。这些库提供了API接口,简化了密钥生成和验证的过程。下面是一些关键步骤: 1. **安装库**: 使用NuGet包管理器安装相应的库,例如`...

    谷歌验证器代码

    谷歌验证器是一款基于时间的一次性密码(TOTP)或基于挑战-响应的硬件...总之,谷歌验证器作为双因素身份验证的一种实现,为在线账户提供了一层额外的安全保护。正确理解和使用它可以显著提高个人和组织的数据安全性。

    Google三方登录流程及注意事项1.0.pdf

    Google三方登录流程是Android开发中常见的集成方式,它允许用户通过Google账户快速登录应用程序。在进行Google三方登录之前,开发者需要准备和配置多个方面,以便顺利集成Google登录功能。 首先,开发者需要访问...

    OAuth2.0代码模拟实现

    这个框架允许用户授权第三方应用访问他们存储在特定服务提供商(如Google或Facebook)上的数据,而无需分享他们的登录凭据。OAuth2.0的核心在于提供了一种安全的方式,使得用户可以在保持对自身账户控制的同时,让...

    google oauth 开源代码

    Google OAuth 提供了一种安全、便捷的方式,让第三方应用能够访问用户的谷歌账户信息,如日历、邮件等,而无需获取用户的登录凭证。开源代码意味着开发者可以查看、使用和修改这些实现OAuth协议的代码,以便在自己的...

    网站常用手机动态第三方登录方式切换js特效代码

    第三方登录允许用户通过他们已经在其他知名平台(如微信、QQ、微博、谷歌或Facebook)建立的账户登录你的网站,无需创建新的账户。这种登录方式提高了用户便利性,因为他们不必记住多个网站的用户名和密码。实现这...

    Java实现第三方登录

    在IT行业中,尤其是在Web开发领域,第三方登录是一种常见的功能,允许用户通过已有的社交媒体账号(如微信、QQ、微博或Google、Facebook等)登录到不同的网站和服务,为用户提供便利的同时,也降低了注册新账户的...

    登录系统(含登录代码和可执行文件)

    6. 可扩展性:登录系统应设计成模块化,以便在未来集成新的认证方式,比如社交登录(Facebook、Google等)或单点登录(Single Sign-On, SSO)。 在给定的“馬磃殺官方登录系统”中,用户可以直接运行可执行文件进行...

    仿QQ登录列表

    在实现第三方登录时,如微信、微博或谷歌账号,开发者需要集成相应的SDK(软件开发工具包)或者利用OAuth协议。这些服务提供API接口,允许用户使用已有的社交账号快速登录,简化注册和登录流程。 最后,考虑到移动...

    谷歌脸书第三方登录

    授权成功后,应用通过回调URL接收身份验证凭据,再用这些凭据换取用户的Google账户信息。 - **Swift代码示例**:使用`GIDSignIn`类进行登录请求和处理回调。 3. **Facebook Login**: - **配置步骤**:在Facebook...

    Lock-Google.Android,使用google和lock for android进行本地登录.zip

    通过`Lock-Google.Android-master`这个压缩包文件,开发者可以获得源代码,学习如何在Android应用中实现与Google账户的无缝集成,以及如何利用Auth0服务处理身份验证。这个开源项目为那些希望提供安全、便捷登录体验...

    Java调用Google Analytics API实现网站统计.doc

    首先,要使用Google Analytics,需要有一个有效的谷歌账户,登录Google Analytics官网并创建一个新的属性来监控你的网站。在设置过程中,Google Analytics会生成一段追踪代码,这段代码需要插入到你的网站页面中,...

    google流量统计代码

    1. **复制跟踪代码:** 登录Google Analytics账户后,在“管理”选项卡中找到跟踪信息,复制提供的跟踪代码。 2. **粘贴代码:** 将复制的代码粘贴到网站所有页面的`&lt;head&gt;`标签内,或者像示例代码那样放置在页面...

    用户的注册与登录页面完整的代码

    - 完成项目后,可以进一步扩展,如添加邮箱验证、密码找回功能,或者集成第三方登录服务(如Facebook、Google等)。 总之,这个资源为学习Web开发提供了宝贵的实践经验,尤其是对前端和PHP新手而言。通过研究和...

    Android版本之Google云打印源代码demo

    谷歌账户是连接这些设备和打印机的桥梁,用户需要拥有一个有效的谷歌账户才能使用此服务。 在Android应用中集成Google云打印,首先需要添加相关的依赖项。在`build.gradle`文件中,你需要引入Google Play Services...

    用多层架构实现登录,实现抽象工厂模式。

    在登录系统中,抽象工厂可以用来创建不同的认证策略,例如本地账户验证、社交账号登录(如通过Facebook或Google)等。通过抽象工厂,我们可以轻松地添加新的认证方式,而无需修改已有的代码,增强了系统的灵活性和...

    Swift-Simplicity-在iOS应用中实现Facebook和Google登录的简单方法

    本文将详细讲解如何使用Swift在iOS应用中轻松实现Facebook和Google登录。 首先,我们需要在项目的`Info.plist`文件中配置必要的权限和设置。对于Facebook登录,需要添加`LSApplicationQueriesSchemes`数组,并包含`...

    简洁响应式用户登录表单代码.zip

    "User_Account" 文件可能是实现登录功能的核心代码,包括验证用户输入、处理登录请求、存储和管理用户账户信息等功能。这部分代码可能涉及JavaScript(JS)和相关的库或框架,如jQuery用于DOM操作,或者使用现代前端...

Global site tag (gtag.js) - Google Analytics