【问题标题】:Omniauth Github AuthenticationOmniauth Github 身份验证
【发布时间】:2013-01-28 12:55:28
【问题描述】:

我正在构建一个允许用户使用其 Github 身份验证凭据登录的应用程序。问题是,我在文档中找不到任何关于限制对某些用户的访问的内容。例如,我希望来自一组特定组织的用户能够登录并非所有只有 github 帐户的人。有什么帮助吗?

【问题讨论】:

  • 你问的是需要的代码还是流程?
  • 不,我是在问这是否可能,以及过程会是什么样子

标签: ruby github omniauth ruby-on-rails-4


【解决方案1】:

您可以选择在循环中的哪个时间点对它们进行身份验证,在 Github 之前还是在 Github 之后。从您的问题来看,您希望在身份验证期间/之后执行此操作。 Github 允许您添加组织信息,但我没有使用过它,所以我不知道它作为会员标志符有多安全,但我认为它已经足够好了。

在验证时,您将在auth hashinfo 键中收到有关用户的大量详细信息,该键位于Rack 环境中的键'omniauth.auth' 下。如果您查看返回的身份验证哈希,它可能包含组织详细信息,或者您可以在此时请求它们。您可以在此基础上运行一个简单的条件,如果用户不在,则让他们失败。如果您查看Sinatra example on the Omniauth wiki,您会看到上面写着# do whatever you want with the information!。在这一点上,您将检查并通过或失败它们(我选择它是因为它比 Rails 示例更清晰,但对于 Rails,您只需在控制器中映射到的操作中执行相同的操作)。您可以引发异常,或者(我的选择是)将它们重定向到失败端点,这取决于您。

如果可能的话,最好在人们尝试登录之前发出警告。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多