限制使用Google OAuth2.0登录Ruby上的特定白名单域名
编辑:我改变了我想要这样做的方式我认为我将使用MySQL表将设计登录列入白名单。 更改后的问题发布在此处: 使用Ruby限制使用Google OAuth2.0登录并设置为特定白名单表
好吧所以我试图在使用Devise和Omni-Auth2并且只有google的rails网站上获取我的ruby的受限身份validation。 到目前为止一切正常,但我只希望接受来自某个域的电子邮件。 无论如何我都愿意这样做。
我做了一些谷歌搜索,但似乎一些PHP用户比我更多的本地文件,可能是因为在本地使用谷歌API客户端? 我并不完全确定,因为我对编码一般都很陌生并且惊讶于我做到了这一点。
以下是一个示例: 使用Python的Google Oauth2.0:如何限制对特定域的访问?
在这里: 使用Google OAuth2.0将登录电子邮件限制为特定域名
两者似乎都使用“高清:域名”或类似的东西,但似乎有问题加上我不确定我会如何在我的应用程序中暗示它。
现在获取更多信息,我只使用gem devise和omniauth-google-oauth2( https://github.com/zquestz/omniauth-google-oauth2 )我觉得这是一种方法来处理这个gem,但仍然不完全确定。 如果我可以发布任何更多信息让我知道,任何帮助将不胜感激。
我的omniauth_callbacks_controller:
class User::OmniauthCallbacksController "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
为什么不向模型添加validation来限制域?
validates :email, presence: true, uniqueness: true, format: { message: 'domain must be example.com', with: /\A[\w+-.]+@example.com\z/i }
其他用户在这里回答:
使用Ruby限制使用Google OAuth2.0登录并设置为特定白名单表
- 服务器不会开始使用authlogic-oauth2
- 在rails + doorkeeper中使用grant_type = password在访问令牌请求中强制设置client_id和secret
- Google Drive API监视400错误Ruby on Rails
- Google OAuth 2 redirect_uri_mismatch – OmniAuth Rails应用
- 使用Google Oauth2客户端访问API时,Rails 3.2.3中的SSL错误
- 带有Doorkeeper和Angular的Oauth2密码授予类型
- 未定义的方法’更改’为:更新时间戳值时的Fixnum
- 是否可以只下载没有附件的IMAP邮件?
- 带有Ruby on Rails和OAUTH2的Yahoo API