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
分享到:
相关推荐
谷歌账户管理4.0.4-299849是Google为Android设备提供的一项核心服务,主要用于处理用户登录和管理Google账户的相关功能。GoogleLoginService.apk是这个服务的可执行文件,它包含了实现这些功能的代码和资源。在这个...
总结,使用Google身份验证器实现在Java中的动态密码验证,可以极大地提高用户账户的安全性,防止恶意攻击。通过生成密钥、配置客户端、验证动态密码等步骤,我们可以构建一个完整的安全登录系统。在实际开发中,还...
在C#中实现这个功能,可以使用开源库如`Authenticator`或`GoogleAuth.Net`。这些库提供了API接口,简化了密钥生成和验证的过程。下面是一些关键步骤: 1. **安装库**: 使用NuGet包管理器安装相应的库,例如`...
谷歌验证器是一款基于时间的一次性密码(TOTP)或基于挑战-响应的硬件...总之,谷歌验证器作为双因素身份验证的一种实现,为在线账户提供了一层额外的安全保护。正确理解和使用它可以显著提高个人和组织的数据安全性。
Google三方登录流程是Android开发中常见的集成方式,它允许用户通过Google账户快速登录应用程序。在进行Google三方登录之前,开发者需要准备和配置多个方面,以便顺利集成Google登录功能。 首先,开发者需要访问...
这个框架允许用户授权第三方应用访问他们存储在特定服务提供商(如Google或Facebook)上的数据,而无需分享他们的登录凭据。OAuth2.0的核心在于提供了一种安全的方式,使得用户可以在保持对自身账户控制的同时,让...
Google OAuth 提供了一种安全、便捷的方式,让第三方应用能够访问用户的谷歌账户信息,如日历、邮件等,而无需获取用户的登录凭证。开源代码意味着开发者可以查看、使用和修改这些实现OAuth协议的代码,以便在自己的...
第三方登录允许用户通过他们已经在其他知名平台(如微信、QQ、微博、谷歌或Facebook)建立的账户登录你的网站,无需创建新的账户。这种登录方式提高了用户便利性,因为他们不必记住多个网站的用户名和密码。实现这...
在IT行业中,尤其是在Web开发领域,第三方登录是一种常见的功能,允许用户通过已有的社交媒体账号(如微信、QQ、微博或Google、Facebook等)登录到不同的网站和服务,为用户提供便利的同时,也降低了注册新账户的...
6. 可扩展性:登录系统应设计成模块化,以便在未来集成新的认证方式,比如社交登录(Facebook、Google等)或单点登录(Single Sign-On, SSO)。 在给定的“馬磃殺官方登录系统”中,用户可以直接运行可执行文件进行...
在实现第三方登录时,如微信、微博或谷歌账号,开发者需要集成相应的SDK(软件开发工具包)或者利用OAuth协议。这些服务提供API接口,允许用户使用已有的社交账号快速登录,简化注册和登录流程。 最后,考虑到移动...
授权成功后,应用通过回调URL接收身份验证凭据,再用这些凭据换取用户的Google账户信息。 - **Swift代码示例**:使用`GIDSignIn`类进行登录请求和处理回调。 3. **Facebook Login**: - **配置步骤**:在Facebook...
通过`Lock-Google.Android-master`这个压缩包文件,开发者可以获得源代码,学习如何在Android应用中实现与Google账户的无缝集成,以及如何利用Auth0服务处理身份验证。这个开源项目为那些希望提供安全、便捷登录体验...
首先,要使用Google Analytics,需要有一个有效的谷歌账户,登录Google Analytics官网并创建一个新的属性来监控你的网站。在设置过程中,Google Analytics会生成一段追踪代码,这段代码需要插入到你的网站页面中,...
1. **复制跟踪代码:** 登录Google Analytics账户后,在“管理”选项卡中找到跟踪信息,复制提供的跟踪代码。 2. **粘贴代码:** 将复制的代码粘贴到网站所有页面的`<head>`标签内,或者像示例代码那样放置在页面...
- 完成项目后,可以进一步扩展,如添加邮箱验证、密码找回功能,或者集成第三方登录服务(如Facebook、Google等)。 总之,这个资源为学习Web开发提供了宝贵的实践经验,尤其是对前端和PHP新手而言。通过研究和...
谷歌账户是连接这些设备和打印机的桥梁,用户需要拥有一个有效的谷歌账户才能使用此服务。 在Android应用中集成Google云打印,首先需要添加相关的依赖项。在`build.gradle`文件中,你需要引入Google Play Services...
在登录系统中,抽象工厂可以用来创建不同的认证策略,例如本地账户验证、社交账号登录(如通过Facebook或Google)等。通过抽象工厂,我们可以轻松地添加新的认证方式,而无需修改已有的代码,增强了系统的灵活性和...
本文将详细讲解如何使用Swift在iOS应用中轻松实现Facebook和Google登录。 首先,我们需要在项目的`Info.plist`文件中配置必要的权限和设置。对于Facebook登录,需要添加`LSApplicationQueriesSchemes`数组,并包含`...
"User_Account" 文件可能是实现登录功能的核心代码,包括验证用户输入、处理登录请求、存储和管理用户账户信息等功能。这部分代码可能涉及JavaScript(JS)和相关的库或框架,如jQuery用于DOM操作,或者使用现代前端...