1

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

4

1 回答 1

1

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

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

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

于 2013-01-28T15:47:16.640 回答