首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我怎么才能解决这个找不到的错误。“Omniauth GitHub的身份验证密码”?

我怎么才能解决这个找不到的错误。“Omniauth GitHub的身份验证密码”?
EN

Stack Overflow用户
提问于 2020-01-02 07:55:45
回答 1查看 999关注 0票数 2

我用OmniAuth实现了OmniAuth,它成功了--直到它没有成功。

我目前正在收到以下错误:Not found. Authentication passthru.

并附有:

代码语言:javascript
复制
Started GET "/users/auth/github" for ::1 at 2020-01-02 14:25:49 +0800
Processing by Users::OmniauthCallbacksController#passthru as HTML
  Rendering text template
  Rendered text template (Duration: 0.0ms | Allocations: 2)
Completed 404 Not Found in 1ms (Views: 0.7ms | ActiveRecord: 0.0ms | Allocations: 548)

这里是我的代码,在这里也可以查看:

代码语言:javascript
复制
# routes.rb

devise_for :users, controllers: { omniauth_callbacks: "users/omniauth_callbacks" }
代码语言:javascript
复制
# the routes

user_github_omniauth_authorize GET|POST /users/auth/github(.:format)
users/omniauth_callbacks#passthru

user_github_omniauth_callback GET|POST /users/auth/github/callback(.:format)
users/omniauth_callbacks#github
代码语言:javascript
复制
# devise.rb

config.omniauth :github, ENV['GITHUB_CLIENT_ID'], ENV['GITHUB_CLIENT_SECRET']
代码语言:javascript
复制
# controllers/users/omniauth_callbacks_controller.rb

class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
  def github
    @user = User.from_omniauth(request.env["omniauth.auth"])

    if @user.persisted?
      sign_in_and_redirect @user, event: :authentication # This will throw if @user is not activated
      set_flash_message(:notice, :success, kind: "Github") if is_navigational_format?
    else
      session["devise.github_data"] = request.env["omniauth.auth"].except("extra")
      redirect_to new_user_registration_url
    end
  end

  def failure
    redirect_to root_path
  end
end
代码语言:javascript
复制
# user.rb

devise :database_authenticatable, :registerable,
:rememberable, :omniauthable, omniauth_providers: %i[github]

def self.from_omniauth(auth)
  where(provider: auth.provider, uid: auth.uid).first_or_create do |user|
    user.email = auth.info.email
    user.password = Devise.friendly_token[0, 20]
    user.username = auth.info.nickname
    user.avatar = auth.info.image
    user.name = auth.info.name
    user.github_profile = auth.info.urls.GitHub
  end
end

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2020-01-02 08:12:20

结果,在升级到Rails 6之后,我再也没有jquery_ujs了,这是link_to助手工作所需要的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59560017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档