oauth-2.0 - github oauth具有多个域

标签 oauth-2.0 multi-tenant github-api

我正在运行在几个子域usergroupXYZ.onruby.de上运行的应用程序,并且还支持将任意域用作别名。因此您可以通过yourusergroup.onruby.de或customdomain.de访问域。

该应用程序通过twitter oauth和github oauth2提供登录名。

问题是,我没有找到通过自定义域支持github auth的方法。我总是从github上收到redirect_uri_mismatch错误。

twitter auth重定向到其他域没有问题。

除了为每个自定义域创建github应用程序 token 以外,没有人有解决此问题的方法吗?

最佳答案

您可以覆盖回调URL,但它必须与OAuth应用程序设置中的主机名匹配。该文档列出了匹配的好坏:http://developer.github.com/v3/oauth/#redirect-urls

由于允许使用不同的上下文,因此一种解决方案是在基本回调URL上创建不同的上下文,然后使用上下文信息重定向到特定主机。这意味着您将表现得像个“经纪人”,并且需要将一些信息传递给目标主机。

如果您的回调URL为oauth.onruby.de,则根据Github,oauth.onruby.de/cust1oauth.onruby.de/cust2将有效。然后,您可以将/cust1重定向到cust1.de,并将/cust2重定向到cust2.de

请记住,oauth.onruby.de将充当网关或代理,并且需要确保没有安全隐患。

关于oauth-2.0 - github oauth具有多个域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13828098/

相关文章:

ruby-on-rails - 跨租户的公寓活跃记录查询

ruby-on-rails - 使用 ActiveRecord 获取模式的大小

python - 使用 API REST 创建的 GitHub secret 但返回空

javascript - 如何维护isAuth并保护私有(private)路由?

php - Laravel Passport Auth 在独立项目上运行基于密码的 token 身份验证时卡住

java - 通过 java 访问谷歌日历

oauth-2.0 - SPA 中的 OIDC session 管理(单点登录)

spring - 带有spring-security-oauth2-provider:4.0.0-RC1的Grails 4

entity-framework - Multi-Tenancy 应用程序和 Entity Framework

android - 为什么 OAuth 流程中的 GitHub 授权按钮是灰色的?