2012-01-16 56 views
0

这是我的第一篇文章,我有一个问题,我不能使它工作django OMAB socialauth我只需要谷歌,脸谱和微博,谷歌工作与三件事情很好开放ID,但没有太多的推特,我把我的django socialauth微博,谷歌oauth,脸书不起作用

设置。潘岳:

TWITTER_CONSUMER_KEY    = '00' this is no real 
TWITTER_CONSUMER_SECRET   = '00' this is no real 
FACEBOOK_APP_ID     = '' ihave no key 
FACEBOOK_API_SECRET    = '' 
LINKEDIN_CONSUMER_KEY    = '' 
LINKEDIN_CONSUMER_SECRET   = '' 
ORKUT_CONSUMER_KEY    = '' 
ORKUT_CONSUMER_SECRET    = ''ihave no key 
GOOGLE_OAUTH2_CLIENT_ID   = '' 
GOOGLE_OAUTH2_CLIENT_SECRET  = '' 
SOCIAL_AUTH_CREATE_USERS   = True 
SOCIAL_AUTH_FORCE_RANDOM_USERNAME = False 
SOCIAL_AUTH_DEFAULT_USERNAME  = 'socialauth_user' 
SOCIAL_AUTH_COMPLETE_URL_NAME  = 'socialauth_complete' 
LOGIN_ERROR_URL     = '/login/error/' 
#SOCIAL_AUTH_USER_MODEL   = 'app.CustomUser' 
SOCIAL_AUTH_ERROR_KEY    = 'socialauth_error' 
GITHUB_APP_ID      = '' 
GITHUB_API_SECRET     = '' 
FOURSQUARE_CONSUMER_KEY   = '' 
FOURSQUARE_CONSUMER_SECRET  = '' 

LOGIN_URL   = '/login-form/' 
LOGIN_REDIRECT_URL = '/' 
LOGIN_ERROR_URL = '/login-error/' 

我使用的是来自于OMAB socialauth django拉链的例子,但没有工作。

当我创建了Twitter的应用程序,我写我的域名www.sisvei.com,我在本地测试socialauth的Django即127.0.0.1:8000,然后登录与Twitter送我去这个网址: http://127.0.0.1:8000/login/error/和消息说是不正确的身份验证服务

出现这种情况与Facebook和谷歌的OAuth和的oauth2

我是新来的Django和我的Django包括这部分这么多的工作socialath希望能帮助我,非常感谢你。

回答

1

您需要更具体地说明“为什么它不起作用”。你在哪里得到错误?

当调试在Django第三方的OAuth/OpenID的应用程序,通常把它归结为:

  • 配置&键 - 你一定要获得所有必要的API密钥的服务,您将正在使用,并将其添加到您的配置?
  • 网址 - 你还记得添加必要的urlpatterns到你的基地urls.py文件吗?
  • 服务器上的身份验证设置 - 通常情况下,您需要有一个文件可用或在身份验证服务遇到您的服务器时使用特定标头进行响应。你有检查,以确保设置?
  • 数据库 - 你安装应用程序后运行syncdb?所有的桌子都设置好了吗?
  • 模板 - 如果第三方应用程序要求您设置模板,您是否设置了它们?
  • 自定义视图 - 你使用自定义视图吗?如果是这样,请尝试先使用第三方应用程序附带的内置视图来查看它们是否可以工作

确定后,您将希望能够看到正在进行的请求地点。使用Chrome/Safari中包含的调试器,或者获取Firefox的Web开发人员插件,并在网络请求发生时查看。你看到200以外的HTTP响应(比如404,500,403等)吗?这些意味着服务没有正确响应。

从您的错误,它看起来像你没有正确设置你的Twitter上的回调URL。它应该将您发送到www.sisvei.com,而不是127.0.0.1。或者,当您访问Twitter登录页面时检查URL - 是URL中的回调URL,它是否指向127.0.0.1?然后Django发送错误的回调URL。

最后这一点:

I wrote my domain www.sisvei.com python does not support this

还不清楚。据我所知,Python并不关心域名是什么。

等一下 ...

是否使用runserver?你是否收到以下错误?

Error: "www.sisvei.com" is not a valid port number or address:port pair.

如果是这样,有一个简单的解决办法!就像这样运行它:

python manage.py runserver www.sisvei.com:80 

这应该解决您的错误,如果这是发生了什么事情。您可能已经作为

python manage.py runserver 127.0.0.1 

127.0.0.1是保留IP地址回指向localhost,自己的电脑。因此,不可能将其用于身份验证或您自己计算机上运行的程序之外的任何其他目的。有关更多信息,请参阅this article

+0

我做的这是局部我没有任何托管。 我使用的例子是:[链接](https://github.com/omab/django-social-auth/tree/master/example) – oscar 2012-01-16 19:49:22

+0

显示这样的事情:http:// social。 matiasaguirre.net/我会编辑我的问题 – oscar 2012-01-16 19:51:35

+1

@oscar你不能使用外部认证,直到你的网站运行在其他服务器(如Twitter)可以看到的域名上。在此之前,您的授权将失败。 – 2012-01-17 23:27:47

0

我不确定,但我可能会遇到类似的问题,奥斯卡。对我来说,SocialAuth为facebook,foursquare和hotmail生成AuthenticationURL,但不支持谷歌,Twitter或任何其他支持的地址。我认为这可能是错误的API,所以我发布了问题在社交授权谷歌组...你可能想检查那里看看有没有人更新!

https://code.google.com/p/socialauth/issues/detail?id=282&colspec=ID%20Type%20Status%20Priority%20Milestone%20Owner%20Summary%20Modified