开发者社区 问答 正文

django-social-auth新浪微博 怎么配置redirect_uri?

django-social-auth新浪微博 怎么配置redirect_uri?

django-social-auth依赖于python-social-auth,使用源码里面的example跑了一下,并且加上新浪微博的backend,根据文档的写法需要有key,secret的配置,但是与新浪微博搞的时候有一个redirect_uri 没找到如何配置,如果不配就会出 error:redirect_uri_mismatch

SOCIAL_AUTH_WEIBO_KEY = '123592348'
SOCIAL_AUTH_WEIBO_SECRET = 'aa8626a4396ab90366e51292baeaeb1e'

请问这个redirect_uri应该如何配置?

展开
收起
huc_逆天 2020-05-28 09:15:51 914 分享 版权
阿里云 AI 助理回答

在Django项目中使用django-social-auth(实际上是python-social-auth)集成新浪微博OAuth认证时,redirect_uri需要在你的应用后台以及Python设置文件中进行配置。

新浪微博开发者平台配置

  1. 注册应用:首先你需要在新浪微博开发者平台注册一个应用,获取到APP KeyApp Secret,这将对应于你的SOCIAL_AUTH_WEIBO_KEYSOCIAL_AUTH_WEIBO_SECRET

  2. 设置回调URL:在你创建的应用页面中,找到“高级信息”或者“OAuth2.0授权设置”部分,有一个“授权回调页”的输入框。这里你需要填入你的应用在用户授权后重定向的地址。这个URL应该指向你的Django应用中的一个视图,该视图负责处理从微博返回的授权码并完成后续的认证流程。例如,如果你的应用域名为example.com,那么可能的回调URL是http://example.com/auth/complete/weibo/

Django项目配置

在你的Django项目的settings.py文件中,除了已经提到的Key和Secret之外,还需要确保python-social-auth知道正确的回调URL。通常情况下,python-social-auth会自动使用Django的site框架来确定回调URL,但你也可以显式地指定:

# settings.py
...
SOCIAL_AUTH_WEIBO_KEY = 'your_key_here'
SOCIAL_AUTH_WEIBO_SECRET = 'your_secret_here'

# 如果默认的回调URL不适用,可以这样显式设置
SOCIAL_AUTH_WEIBO_REDIRECT_URI = 'http://example.com/auth/complete/weibo/'

# 确保SITE_ID正确设置,如果使用默认回调URL的话
SITE_ID = 1  # 这里的数字应与你的Django Site模型中的ID匹配

请确保你在新浪微博开发者平台上设置的回调URL与你在Django设置中指定的完全一致,包括协议(http或https)、域名、路径等,否则会遇到redirect_uri_mismatch错误。

最后,确保你的Django应用能够响应这个回调URL,并且相关的URL模式已经在urls.py中定义好了。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答