最近写了个github帐户登录Demo:
https://github.com/yankforce/devise_omniauth_github
演示项目地址:
http://devise-github.herokuapp.com
BASIC版本,只是github omniauth,可以参考这个
https://github.com/bay6/omniauth-github-example
demo:
http://github-ominiauth.herokuapp.com
主要遇到问题:
No route matches “/users/sign_out” devise rails 3
<div id="user_nav">
<% if user_signed_in? %>
Signed in as <%= current_user.email %>. This cannot be cheese?
<%= link_to 'Sign out', destroy_user_session_path %>
<% else %>
<%= link_to 'Register', new_user_registration_path %> or <%= link_to 'Sign in', new_user_session_path %>
<% end %>
</div>
忘了delete方法
<%= link_to "Sign out", destroy_user_session_path, :method => :delete %>
重写登录成功,退出路径hook
def after_sign_in_path_for(resource)
current_user_path
end
def after_sign_out_path_for(resource_or_scope)
request.referrer
end
devise默认call back地址
http://yourdomain.users/auth/github/callback
问题三
Undefined method omniauth_authorize_path
The fix, or at least the one that worked for me:
replace:
omniauth_authorize_path(resource_name, provider)
with
user_omniauth_authorize_path(provider)
解决办法:
#删除config/initializers/omniauth.rb
#添加到config/initializers/devise.rb
config.omniauth :github, CONFIG[:facebook_key], CONFIG[:facebook_secret]
总的来说devise的omniauth不能用omniauth的传统配置
https://github.com/plataformatec/devise/wiki/OmniAuth%3A-Overview
不是
https://github.com/intridea/omniauth
分享到:
相关推荐
使用Mysql和Mongo、Devise、CanCan、OmniAuth和TwitterBootst
使用RubyonRails、Devise和Omniauth登录Twitter的教程_Ruby
如果用户同意授权,他们将被带回你的应用,此时Devise和OmniAuth已经处理了身份验证,用户可以直接登录而无需创建新的账户。 在JavaScript方面,你可能需要在前端添加一个链接或按钮,触发谷歌登录的流程。可以使用...
使用Devise和Omniauth进行单点登录 我们想解决这些问题: 单个用户管理器应用程序(将对所有具有不同角色的用户进行身份验证) 与用户管理器进行身份验证的不同内部应用程序 用户应该能够通过Twitter和Facebook等...
然而,你可以结合Omniauth这样的库来实现OAuth身份验证,允许用户通过Facebook、Google等第三方服务登录。 在`plataformatec-devise-2e5b5fc`这个文件中,可能包含的是Devise的源代码或某个特定版本的分支。开发者...
Devise-Omniauth-Multiple-Providers:设计多个Omniauth Providers
可以通过继承Devise的User模型,或者使用多表继承(例如,通过has_one或has_many关系)。 7. **创建视图** Devise提供了一些默认的视图模板,但你可能希望自定义这些视图以适应Noodall的UI。这些模板通常位于`app/...
标题中的"使用devise_openid_authenticatable的devise_example版本_Ruby_"表明这是一个关于Ruby on Rails应用的项目,具体来说,它使用了`devise` gem的一个扩展——`devise_openid_authenticatable`,用于实现...
这个示例项目“通过devise_omni-auth使用facebook登录的示例项目”展示了如何将这两个库结合,使用户能够通过Facebook账户进行登录。下面,我们将详细探讨这个过程中的关键知识点。 首先,Devise是一个灵活的身份...
devise_token_auth可以与其他库集成,如Omniauth进行社交登录。同时,可以根据项目需求自定义认证流程,比如添加权限控制、多因素认证等。 综上所述,本课程通过Ruby on Rails 6和devise_token_auth教你如何构建一...
通过这个教程,你不仅学会了如何在Rails应用中集成Devise和Koala来实现Facebook身份验证,还了解了OAuth2的工作原理以及如何处理OmniAuth回调。这将帮助你为用户提供更加丰富的登录选项,提升用户体验。
这是一个示例应用程序,是使用omni github auth设计Rails 6中的auth的基本模板。 建立 Ruby on Rails Webpack引导 Github OAuth 开始使用 要求 Ruby 2.6 导轨6 工头宝石 克隆 git clone ...
9. **数据库集成**: Devise 默认与 ActiveRecord 集成,但也可以与其他 ORM(对象关系映射)如 Mongoid 或 DataMapper 结合使用。 10. **错误处理**: 当用户认证失败或触发其他错误时,Devise 提供了一套错误消息...
This book is for web developers who are getting started with Rails and are looking for authentication solutions, as well as for Rails developers who are looking to extend their implementation of ...
接着,通过运行`rails generate devise:install`命令初始化Devise,这会创建必要的配置文件并设置默认的路由。 在实现多账户登录时,我们需要创建多个模型,每个模型代表一种类型的用户。例如,可以创建`Admin`、`...
总的来说,Devise与Doorkeeper的结合为你的Rails应用提供了完整的身份验证和授权解决方案,使得你可以安全地向第三方应用开放API,同时保护你的用户数据。通过这种方式,你可以构建一个强大且灵活的平台,为开发者...
Omniauth实验室目标识别Omniauth中的“策略” 将开发人员策略与Omniauth结合使用使用Omniauth通过第三方API在Rails服务器中提供OAuth身份验证介绍在本实验中,我们将配置Rails应用程序以请求第三方进行身份验证。...
将开发人员策略与Omniauth结合使用 使用Omniauth通过第三方API在Rails服务器中提供OAuth身份验证 介绍 在本实验中,我们将配置Rails应用程序以请求第三方进行身份验证。 典型的第三方身份验证器是Twitter,Facebook...
Omniauth实验室目标识别Omniauth中的“策略” 将开发人员策略与Omniauth结合使用使用Omniauth通过第三方API在Rails服务器中提供OAuth身份验证介绍在本实验中,我们将配置Rails应用程序以请求第三方进行身份验证。...