我正在尝试按照Railscast#360中的描述实现omniauth-facebook,并遇到了相当大的障碍.当我点击登录链接时,我得到了所需的弹出窗口,要求我输入我的facebook凭据,但是当我提交时,我得到一个OmniAuth :: Strategies :: OAuth2 :: CallbackError错误.在apache日志中,打印出来:(facebook)身份验证失败!invalid_credentials:OmniAuth :: Strategies :: OAuth2 :: CallbackError,OmniAuth :: Strategies :: OAuth2 :: CallbackError
这是相关代码:
omniauth.rb
OmniAuth.config.logger = Rails.logger
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, ENV['FACEBOOK_APP_ID'], ENV['FACEBOOK_SECRET']
end
Run Code Online (Sandbox Code Playgroud)
sessions_controller.rb
class SessionsController < ApplicationController
def create
user = User.from_omniauth(env["omniauth.auth"])
session[:user_id] = user.id
redirect_to root_url
end
def destroy
session[:user_id] = nil
redirect_to root_url
end
end
Run Code Online (Sandbox Code Playgroud)
application.html.erb
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '(**my app id**)', // App ID
status : true, // check login …Run Code Online (Sandbox Code Playgroud) 我正在开发一个Rails 4应用程序.在我的笔记本电脑上,开发完成了localhost:3000.该网站的实际域名是roomidex.com.
如何设置Facebook应用程序以便它适用于生产和开发?
这是当前的配置:
App Domains: roomidex.com
Website With Facebook Login:
Site URL: http://www.roomidex.com
Run Code Online (Sandbox Code Playgroud)
当我尝试在localhost:3000上进行Facebook登录时,我发现这并不奇怪:
{
"error": {
"message": "Invalid redirect_uri: Given URL is not allowed by the Application configuration.",
"type": "OAuthException",
"code": 191
}
}
Run Code Online (Sandbox Code Playgroud) 我在rails中使用omniauth-oauth2来验证支持oauth2的站点.做完oauth之后,该网站给了我以下内容,然后我将其保存到数据库中:
是否存在omniauth方法在令牌过期后自动刷新令牌,还是应该编写自定义代码来执行相同操作?
如果要编写自定义代码,帮助程序是编写逻辑的正确位置吗?
我有几个Rails应用程序,我正在寻求与OmniAuth集成,但我有一个概念性的问题,我想先找出来.请考虑以下情形:
由于Twitter不向Foo提供电子邮件地址,因此没有通用标识符可用于检测两个Joes是同一个Joe.您可以决定仅支持向您提供用户电子邮件地址的提供商,但如果用户在不同提供商处注册了不同的电子邮件地址,则无效.
我能想到的唯一其他解决方案是为用户提供一些合并两个现有帐户的方法.与使用OmniAuth时其他一切相对容易相比,这是一个令人头疼的问题.如果这是唯一的解决方案,是否有人遇到指导/教程,展示如何做到这一点的示例?鉴于OmniAuth的受欢迎程度,我对这个问题没有得到更多关注感到惊讶.
谢谢!
我是一个铁杆新手...我正在尝试设置登录Facebook的演示应用程序.我正在使用OmniAuth并遵循本教程
https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview
重定向到fB时出现此错误:
Routing Error:
uninitialized constant Users
Try running rake routes for more information on available routes.
Run Code Online (Sandbox Code Playgroud)
环境
Windows 7
Rails version :3.2.9.rc2
omniauth-1.1.1
devise-2.1.2
Run Code Online (Sandbox Code Playgroud)
我的routes.rb看起来像这样:
root :to => 'static_pages#home'
resources :users
get "static_pages/home"
match '/auth/facebook' => 'omniauth#passthru'
match '/users/auth/facebook' => 'users/omniauth_callbacks#passthru'
devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" } , :strategy_class => OmniAuth::Strategies::Facebook
Run Code Online (Sandbox Code Playgroud)
devise.rb包含:
require 'devise/orm/active_record'
require 'omniauth-facebook'
config.omniauth_path_prefix = "/users/auth"
config.omniauth :facebook, "ABC", "XYZ",{:client_options => { :ssl => { :verify => false } }}
Run Code Online (Sandbox Code Playgroud)
OmniAuthController包含:ie app/controllers/omniauth_callbacks_controller.rb …
我已经使用Devise和Omniauth为我的rails应用程序设置了用户身份验证.现在我想知道我应该在哪里开始为我想要创建的Android和iPhone应用程序使用相同的auth.
我应该使用我的/ auth/facebook的移动版本,还是应该直接从应用程序发送请求?
这是一个相当普遍的问题,但我发现无处可寻.
编辑:我刚刚向应用程序添加了Token Auth以与RESTful api一起使用,我只是错过了Omniauth/Facebook-token部分.
一切都很好,Omniauth突然停止了工作.我没有进行任何代码更改.
我检查了Twitter应用程序设置:我有回调网址到我的主要生产网址,并且回拨网址已锁定为否.所有密钥都是正确的.
任何的想法?
的OAuth ::未经授权
403禁止
ruby-on-rails devise omniauth ruby-on-rails-5 omniauth-twitter
我正在尝试按照此Railscast中的描述设置Omniauth .虽然它适用于Twitter,但我无法让它与Facebook合作.我还将' http:// localhost:3000 '设置为siteurl,将'localhost'设置为域,但仍然在浏览器中看到以下错误消息:
Invalid redirect_uri: Given URL is not allowed by the Application configuration.
Run Code Online (Sandbox Code Playgroud)
你们有没有人对如何解决这个问题有任何建议?提前致谢.
我正在编写一个Rails应用程序,该应用程序使用omniauth-facebook来针对FB对用户进行身份验证(以及为用户获取FB OAuth访问令牌).然后,应用程序使用Koala使用保存的OAuth令牌对FB Graph API进行各种调用.
每次用户重新进行身份验证时(通常在他们登录我的应用程序时),我都会更新已保存的令牌.即便如此,保存的令牌也会不时到期(或以其他方式变为无效).
在使用考拉时,防止身份验证失败和更新令牌的最佳做法是什么?
是否所有调用都包含在begin/rescue块中,并使用异常处理程序对FB进行重新验证?
是否有某种方式(使用Koala)来利用此处描述的"扩展访问令牌"流程?如果没有,是否有编写自己的代码以从Koala调用中自己提取新令牌的最佳实践?
我想从Facebook获取用户个人资料大图或普通图片.现在我使用以下代码从用户个人资料图片中获取方形版本:
:image => access_token.info.image
# http://graph.facebook.com/id/picture?type=square
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得大版或普通版?
或者和应用程序,我怎么能在这个网址中替换最后一个字,大而不是方形......
非常感谢你!
facebook ruby-on-rails facebook-graph-api omniauth ruby-on-rails-3