Twitter oAuth callbackUrl - 本地主机开发


7 Answers

上周我只需要做这个。 显然localhost不起作用,但127.0.0.1做图。

这当然假设你使用Twitter注册了两个应用程序,一个用于您的实时www.mysite.com ,另一个用于127.0.0.1

Question

其他任何人都难以让Twitters oAuth的回调URL访问本地主机开发环境。 显然它最近已被禁用。 http://code.google.com/p/twitter-api/issues/detail?id=534#c1

有没有人有解决方法。 我不想停止我的发展




使用http://smackaho.st

它所做的只是一个简单的DNS关联到127.0.0.1,它允许您绕过localhost或127.0.0.1上的过滤器:

smackaho.st。 28800 IN A 127.0.0.1

所以如果你点击链接,它会显示你在你的本地网络服务器上有什么(如果你没有,你会得到一个404)。 你当然可以将它设置为你想要的任何页面/端口:

http://smackaho.st:54878/twitter/callback




是的,由于最近在OAuth中发现的安全问题,它被禁用。 现在唯一的解决方案是创建两个OAuth应用程序 - 一个用于生产,一个用于开发。 在开发应用程序中,您设置了localhost回调URL而不是活动的URL。




这些步骤可以帮助我在笔记本电脑上使用本地应用程序的Facebook工作:

  • 转到apps.twitter.com
  • 输入名称,应用程序描述和您的站点URL注意:对于localhost:8000,请使用127.0.0.1:8000,因为前者不起作用
  • 输入与您的应用程序的TWITTER_REDIRECT_URI中定义的回调URL匹配的回调URL。注意:例如: http://127.0.0.1/login/twitter/callback : http://127.0.0.1/login/twitter/callback (localhost不起作用)。
  • 如果您希望请求用户的电子邮件地址,请输入“隐私政策”和“使用条款”网址
  • 选中同意条款复选框
  • 点击[创建您的Twitter应用程序]
  • 切换到顶部的[Keys and Access Tokens]选项卡
  • 将“客户密钥(API密钥)”和“消费者密钥(API密钥)”复制到应用程序中的TWITTER_KEY和TWITTER_SECRET
  • 单击“权限”选项卡并正确设置为“只读”,“读取和写入”或“读取,写入和指导消息”(使用您的应用程序所需的最少侵入选项,仅用于OAuth登录“只读”足够
  • 如果您希望将用户的电子邮件地址返回到OAuth登录数据(在大多数情况下选中是,请在“其他权限”下)选中“请求来自用户的电子邮件地址”复选框。



使用Fiddler可以非常方便地完成:

  • 打开菜单工具>主机...
  • 插入一行,如127.0.0.1 your-production-domain.com ,确保选中“启用重新映射请求...”。 不要忘记按保存
  • 如果需要访问您的真实生产服务器,只需退出Fiddler或禁用重新映射即可。
  • 再次启动Fiddler将打开重新映射(如果选中)。

令人127.0.0.1:3000 your-production-domain.com是,您可以指定自定义端口,如下所示: 127.0.0.1:3000 your-production-domain.com : 127.0.0.1:3000 your-production-domain.com (通过hosts文件无法实现此目的)。 此外,而不是IP,您可以使用任何域名(例如, localhost )。

这样,有可能(但不是必须)只注册一次您的Twitter应用程序(只要您不介意在本地开发和生产中使用相同的密钥)。




看起来Twitter现在允许localhostCallback URL设置中的任何内容一起使用,只要其中存在价值即可。




我正在使用我本地主机上的Twitter回调网址。 如果您不确定如何创建虚拟主机(这很重要),请使用Ampps。 他非常酷,很容易。 在几个步骤中,您拥有自己的虚拟主机,然后每个网址都可以运行。 例如:

  1. 下载并安装ampps

  2. 添加新的域名。 (这里你可以设置例如twitter.local),这意味着你的虚拟主机将是http://twitter.local ,它将在第3步之后工作。

  3. 我在Win上工作,所以去你的主机文件 - > C:\ Windows \ System32 \ Drivers \ etc \ hosts并添加行:127.0.0.1 twitter.local

重新启动Ampps,你可以使用你的回调。 你可以指定任何url,即使你使用了一些框架MVC或者你有htaccess url重写。

希望这个帮助! 干杯。




我有同样的挑战,我无法给本地主机作为有效的回调URL。 所以我创建了一个简单的域来帮助我们的开发者: https//tolocalhost.com

它会将任何路径重定向到您所需的localhost域和端口。 希望它可以用于其他开发人员。




Related