【发布时间】:2021-05-07 12:05:44
【问题描述】:
尝试使用 Google Oauth 登录时,我遇到 404 错误“未找到。身份验证通路”。这仅在一个月前在我的网站上有效,并且我没有更改任何应该影响身份验证的内容。我看过其他几篇关于此的帖子,但似乎没有一个对我有用。
initializers/devise.rb
Devise.setup do |config|
config.omniauth :google_oauth2, ENV['GOOGLE_OAUTH_CLIENT_ID'], ENV['GOOGLE_OAUTH_CLIENT_SECRET']
.
.
.
宝石文件
gem 'devise', github: 'heartcombo/devise'
gem 'omniauth', '~> 1.6', '>= 1.6.1'
gem 'omniauth-google-oauth2'
gem "omniauth-rails_csrf_protection"
routes.rb
devise_for :users, controllers: { omniauth_callbacks: 'users/omniauth_callbacks' }
devise_scope :user do
get 'users/sign_in', to: 'users/sessions#new'
get 'users/sign_out', to: 'users/sessions#destroy'
end
查看
<%- if devise_mapping.omniauthable? %>
<%- resource_class.omniauth_providers.each do |provider| %>
<% if provider = "google_oauth2" %>
<%= link_to "Sign in with Google", omniauth_authorize_path(resource_name, provider), method: :post, class: "oauth-link" %><br />
<% else %>
.
.
.
【问题讨论】:
-
你有没有想过这个问题?我处于类似的位置。这个问题和其他一些问题似乎破坏了所有 OAuth2 教程。
标签: ruby-on-rails oauth-2.0 devise google-oauth omniauth-google-oauth2