gpt4 book ai didi

ruby-on-rails - 使用 Google OAuth2.0 限制登录到 Ruby 上的特定白名单域名

转载 作者:行者123 更新时间:2023-12-03 16:03:02 25 4
gpt4 key购买 nike

编辑:我改变了我想这样做的方式我想我将使用一个 MySQL 表来使用谷歌将设备登录列入白名单。更改后的问题发布在此处:Restrict Login with Google OAuth2.0 and Devise to Specific Whitelist Table using Ruby
好的,所以我正在尝试使用 Devise 和 Omni-Auth2 并且仅使用 google 对 Rails 网站上的 ruby​​ 进行受限身份验证。到目前为止一切正常,但我只希望接受来自某个域的电子邮件。无论如何,我愿意这样做。
我做了一些谷歌搜索,但似乎有些 PHP 用户的本地文件比我多一些,也许是因为在本地使用了 google API 客户端?我不太确定,因为我对一般编码很陌生,并且很惊讶我能做到这一点。
这是一个例子:Google Oauth2.0 with Python: How do I limit access to a specific domain?
在这里:Restrict Login Email with Google OAuth2.0 to Specific Domain Name
两者似乎都使用“hd:domain”或类似的东西,但似乎存在问题,而且我不确定如何在我的应用程序中实现它。
现在要了解更多信息,我只使用 gem devise 和 omniauth-google-oauth2 ( https://github.com/zquestz/omniauth-google-oauth2 ) 我觉得有一种方法可以使用该 gem 但仍然不完全确定。如果我可以发布更多信息让我知道,任何帮助将不胜感激。
我的 omniauth_callbacks_controller:

class User::OmniauthCallbacksController < Devise::OmniauthCallbacksController
def google_oauth2
# You need to implement the method below in your model (e.g. app/models/user.rb)
@user = User.find_for_google_oauth2(request.env["omniauth.auth"], current_user)

if @user.persisted?
flash[:notice] = I18n.t "devise.omniauth_callbacks.success", :kind => "Google"
sign_in_and_redirect @user, :event => :authentication
else
session["devise.google_data"] = request.env["omniauth.auth"]
redirect_to new_user_registration_url
end
end
end

最佳答案

我知道这个问题很老,但回答仅供引用。您需要更改 config/initializer/omniauth.rb 并将“hd”添加到提供程序。

Rails.application.config.middleware.use OmniAuth::Builder do
provider :google_oauth2, ENV["google_client_id"], ENV["google_client_secret"],
{
hd: 'domain.com'
}
end

关于ruby-on-rails - 使用 Google OAuth2.0 限制登录到 Ruby 上的特定白名单域名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23294102/

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