gpt4 book ai didi

ruby-on-rails - Omniauth-facebook 不断报告 invalid_credentials

转载 作者:行者123 更新时间:2023-11-30 05:14:16 24 4
gpt4 key购买 nike

我正在尝试按照 Railscast #360 中的描述实现 omniauth-facebook,但遇到了很大的障碍。当我单击登录链接时,我得到了所需的弹出窗口,要求我输入我的 facebook 凭据,但是当我提交时,我收到 OmniAuth::Strategies::OAuth2::CallbackError 错误。在 apache 日志中,打印如下:(facebook) Authentication failure! 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

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

application.html.erb

<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '(**my app id**)', // App ID
status : true, // check login status
cookie : true // enable cookies to allow the server to access the session
});

$('#sign_in').click(function(e) {
e.preventDefault();
return FB.login(function(response) {
if (response.authResponse) {
return window.location = '/auth/facebook/callback';
}
});
});

return $('#sign_out').click(function(e) {
FB.getLoginStatus(function(response) {
if (response.authResponse) {
return FB.logout();
}
});
return true;
});
};
</script>

我是不是漏掉了一些简单的东西?最近几天我一直在寻找解决方案。

最佳答案

似乎 omniauth-facebook v1.4.1 引入了 CSRF 问题。一个临时修复方法是回滚到 v1.4.0。在您的 Gemfile 中,将 omniauth-facebook 行更改为:

gem 'omniauth-facebook', '1.4.0'

我已经报告了这个问题:https://github.com/mkdynamic/omniauth-facebook/issues/73

关于ruby-on-rails - Omniauth-facebook 不断报告 invalid_credentials,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11597130/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com