我正在运行在几个子域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/cust1
和oauth.onruby.de/cust2
将有效。然后,您可以将/cust1
重定向到cust1.de
,并将/cust2
重定向到cust2.de
。
请记住,oauth.onruby.de
将充当网关或代理,并且需要确保没有安全隐患。
关于oauth-2.0 - github oauth具有多个域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13828098/