当前位置: 首页 > 知识库问答 >
问题:

使用POST/sign_in登录。不支持GET。Omniauth-Facebook

晁璞
2023-03-14

前端有ng-token-auth,后端有devise_token_auth。现在我必须在我的网站中实现omniauth-facebook&omniauth-goole登录。

在config.js(ng-token-auth)中

$scope.handleBtnClick = function() {
  console.log('here its')
  $auth.authenticate('facebook')
    .then(function(resp) {
      // handle success
    })
    .catch(function(resp) {
      // handle errors
    });
};
mount_devise_token_auth_for 'User', at: 'auth',:controllers => { :omniauth_callbacks => 'omniauth' }
 config.omniauth :facebook,  'APP_KEY', 'APP_SECRET',{ :scope => 'email' }
class OmniauthController < Devise::OmniauthCallbacksController
        def facebook
            byebug
            @user = User.from_omniauth(request.env["omniauth.auth"])
            sign_in_and_redirect @user
        end
    end

这是我的服务器日志

开始获取“/omniauth/facebook?auth_origin_url=HTTP%3a%2f%2flocalhost%3a3000%2f%23%2f&omniauth_window_type=samewindow&resource_class=user”,地址为2016-03-12 18:34:33+0500 I,[2016-03-12T18:34:33:33.203521#5978]信息--omniauth:(脸书)请求阶段启动。

开始获取“/omniauth/facebook/callback?code=aqargivlmoz......”127.0.0.1在2016-03-12 18:34:34+0500 I,[2016-03-12T18:34:34.189285#5978]信息--全方位:(脸书)回调阶段开始。我,[2016-03-12T18:34:36.790185#5978]信息--全方位:(脸书)回调阶段开始。E,[2016-03-12T18:34:36.790636#5978]错误--Omniauth:(脸书)身份验证失败!csrf_detected:Omniauth::Strategies::Oauth2::CallbackError,csrf_detected CSRF检测到devise::OmniauthCallbacksController#作为HTML参数失败的处理:{“code”=>“aqargivlMozsdlxe....”}重定向到http://localhost:3000/auth/sign_in在10ms内找到完成的302(ActiveRecord:0.0ms)

在2016-03-12 18:34:36+0500 deviseTokenauth::SessionsController#New as HTML Completed 405方法在1ms内不允许(视图:0.2 ms ActiveRecord:0.0ms)

共有1个答案

井高峯
2023-03-14

这对我很管用:

mount_devise_token_auth_for 'User', at: 'auth',:controllers => { :omniauth_callbacks => 'omniauth' }, via: [:get, :post]
 类似资料:
  • 我有一个maven Web应用程序,我使用logback和JBoss EAP 6.1作为服务器。问题是,当我在服务器上部署它时,我的logback.xml被忽略,logback的默认配置被使用,它打印在控制台上,而不是我的日志文件。如果我在tomcat上部署我的应用程序,日志工作正常。 我得把它放回原处。src/main/resources中的xml。 在Logback SL4J JBoss EA

  • 我正在尝试使用Spring(v.4.1.0)Security(v.3.2.5)保护的访问URL(例如 /user/subscriptions),在提交用户名/密码和csrf令牌后,我收到以下错误: HTTP错误405访问/j\u spring\u security\u检查时出现问题。原因:不支持请求方法“POST” 我有以下配置。网状物xml Spring Security上下文: CustomL

  • 阅读了一些例子后,我想实现一个爬虫的帮助转移与登录,如: https://target.helpshift.com/login/?next=/admin/issues/ 但是,我得到这个错误: 线程“main”组织中出现异常。jsoup。HttpStatusException:获取URL时发生HTTP错误。状态=403,URL=https://target.helpshift.com/login/

  • 我正在尝试使用OpenProject OmniAuth SAML单点登录插件设置SSO(单点登录)与OpenProject的集成。我已经配置了相关的详细信息。生成元数据并向Shibboleth支持的IDP注册。该插件在openproject登录表单上显示了一个额外的登录按钮。单击它将正确重定向到IDP的登录页面。在提供凭据之后,它正确地重定向到我提到的AssertionConsumerServic

  • 您好,我正在尝试创建一个POST方法,但我一直收到“404 Request方法'GET'not support”错误。下面我将发布我的Rest控制器,下面我将发布我的服务类。唯一不起作用的是@PostMaps方法。 我没有看到这个问题,我尝试切换到@GetMapping并删除了实际的事务“billRepository.delete(billToWithdraw);”然后该方法返回正确的账单。

  • 问题内容: 到目前为止,我一直在使用: 谢谢 编辑:我为可能遇到此页面的任何人提供了一种解决方案,以演示如何使用POST而不是GET。如果您不熟悉AJAX,建议您首先使用GET方法向本教程http://www.w3schools.com/PHP/php_ajax_php.asp推荐。 解- javascript: 的PHP: 由于有关使用POST和GET的原因-请参见注释。 问题答案: 您显示的查