如何解决自定义 django-allauth 社交登录和回调 URL通过前端服务重定向它们
当我使用 django-allauth like 注册/登录我的社交帐户时
http://localhost:8000/accounts/google/login/
现在进行身份验证后,Google 将我们重定向回以下回调 URL 为
http://localhost:8000/accounts/microsoft/login/callback/
我想将上述 URL 更改为重定向到前端服务,然后将其从那里重定向到我们的后端服务器。有没有办法实现这一目标?因为出于安全原因,我只有我们的前端服务器与我们的后端交互,而不是任何其他第三方。
解决方法
我不确定您在应用程序中使用的身份验证类型(前端和后端之间),但使用 allauth
默认回调将帮助您自动创建或登录用户而无需额外工作。
如果您想在前端处理回调,您只需要将提供程序中的回调 URL(例如在 google 中,它是您获取客户端 ID 的位置)更改为位于前端应用程序中的 URL,然后,手动发送回调参数给后端。
这是您应该做的事情(假设您的前端托管在 example.com
上,而您的后端位于 api.example.com
):
重定向网址:example.com/google/callback?{some_parameters_sent_by_google}
在您的前端应用程序中,您应该从 URL 获取参数,然后将参数发送到后端(例如在 POST 请求中)。
示例请求:
网址:api.example.com/login/social/
正文:
{
'social': 'google','parameters': {some_parameters_sent_by_google(as json)}
}
然后,在您的后端,您可以手动处理登录或注册。
此外,如果您想坚持使用 allauth
,您可以使用 custom redirect,但它不能满足您限制后端-前端交互的需要。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。