django-allauth 集成 Figma 第三方登录:应用注册、回调配置与 OAuth2 源码实现解析
后端认证鉴权身份认证【免费下载链接】django-allauthIntegrated set of Django applications addressing authentication, registration, account management as well as 3rd party (social) account authentication. Mirror of https://codeberg.org/allauth/django-allauth/项目地址https://gitcode.com/gh_mirrors/dj/django-allauth点击查看免费下载本指南以 django-allauth 仓库中 docs/socialaccount/providers/figma.rst 为骨架完整讲解如何为 Django 项目接入 Figma 第三方登录从 Figma 开发者平台注册应用、获取 Client ID/Secret、配置回调地址到启用figmaprovider、完成登录与账号绑定。读完本文你将能独立完成 Figma OAuth2 登录的最小可用配置并理解其底层调用链与用户数据提取逻辑。一、前置准备在 Figma 开发者平台注册应用接入 Figma OAuth2 的第一步是在 Figma 官方开发者平台创建 OAuth 应用以获取后续配置所必需的Client IDkey与Client Secretsecret。原文档明确指出应用注册入口为应用注册地址获取 key 和 secrethttps://www.figma.com/developers/apps创建应用时平台会要求你填写应用名称、重定向回调地址等基本信息。注册完成后妥善保存页面上展示的 Client ID 与 Client Secret——它们将分别作为 django-allauth 侧SOCIALACCOUNT_PROVIDERS配置中的client_id与secret字段。二、开发环境回调地址OAuth2 授权码流程要求第三方平台在授权完成后将用户重定向回你的站点因此必须在 Figma 应用配置中登记回调地址。原文档给出的开发环境回调 URL 为http://localhost:8000/accounts/figma/login/callback/该地址由两部分组成站点根地址http://localhost:8000对应本地 Django 开发服务器默认端口若使用其他端口需同步修改回调路径/accounts/figma/login/callback/由 django-allauth 的 URL 路由自动生成见下文“路由与回调链路”一节无需手工编写视图。生产环境部署时将http://localhost:8000替换为你的正式域名并在 Figma 开发者平台中同步登记该生产回调地址任何未登记的地址都会在授权回调时被 Figma 拒绝。三、启用 Figma Provider1. 安装并注册应用django-allauth 将 Figma 登录能力封装为独立的 Django 应用allauth.socialaccount.providers.figma启用方式是在INSTALLED_APPS中加入该应用。参考仓库 docs/installation/quickstart.rst 的完整安装清单示例配置如下INSTALLED_APPS [ django.contrib.admin, django.contrib.auth, django.contrib.contenttypes, django.contrib.sessions, django.contrib.messages, django.contrib.sites, # allauth 核心 allauth, allauth.account, allauth.socialaccount, # 第三方提供商 allauth.socialaccount.providers.figma, ]随后执行数据迁移创建社交账户相关数据表python manage.py migrate2. 配置 Provider 凭据在 Django 设置文件中通过SOCIALACCOUNT_PROVIDERS字典配置 Figma 应用凭据该设置项的完整说明参见 docs/socialaccount/configuration.rstSOCIALACCOUNT_PROVIDERS { figma: { APP: { client_id: 你的-Figma-Client-ID, secret: 你的-Figma-Client-Secret, } } }client_id与secret即第一步在 Figma 开发者平台获取的 key 与 secret。也可以不在此处硬编码而是通过 Django Admin 的“社交应用Social applications”管理界面创建SocialApp记录provider 选择Figma并将站点关联到该应用——两种方式最终都会为授权流程提供相同的凭据。四、URL 路由与登录入口Figma 登录无需手工编写视图或路由。仓库中 allauth/socialaccount/providers/figma/urls.py 仅有如下内容from allauth.socialaccount.providers.figma.provider import FigmaProvider from allauth.socialaccount.providers.oauth2.urls import default_urlpatterns urlpatterns default_urlpatterns(FigmaProvider)default_urlpatterns定义于 allauth/socialaccount/providers/oauth2/urls.py为每个 provider 统一生成两条路由login/跳转到 Figma 授权页的登录视图对应figma_loginlogin/callback/接收 Figma 授权回调的视图对应figma_callback。因此只要你已在根 URLconf 中include(allauth.socialaccount.urls)上述回调地址/accounts/figma/login/callback/即自动生效。登录链接可通过模板标签生成例如{% load socialaccount %} a href{% provider_login_url figma %}使用 Figma 登录/a五、OAuth2 端点与登录流程源码解析1. 三个关键端点Figma provider 的 OAuth2 适配器定义于 allauth/socialaccount/providers/figma/views.py其中明确声明了 Figma 平台的三个核心端点用途URL源码位置授权端点authorizehttps://www.figma.com/oauthviews.pyauthorize_url换取令牌端点tokenhttps://www.figma.com/api/oauth/tokenviews.pyaccess_token_url用户信息端点userinfohttps://api.figma.com/v1/meviews.pyuserinfo_url这些端点继承自基类OAuth2Adapter见 allauth/socialaccount/providers/oauth2/views.py基类还负责令牌解析parse_token从响应中读取access_token并将refresh_token存入token_secret、依据expires_in计算过期时间。2. 完整登录调用链Figma 登录走标准的 OAuth2 授权码流程由通用视图OAuth2LoginView与OAuth2CallbackView驱动用户访问login/OAuth2LoginView将用户重定向至https://www.figma.com/oauth附带client_id、redirect_uri即/accounts/figma/login/callback/的绝对地址、state等参数用户在 Figma 页面授权后Figma 携带授权码code重定向回login/callback/OAuth2CallbackView使用授权码向https://www.figma.com/api/oauth/token发起 POST 请求换取访问令牌access_token_method默认为POST随后调用适配器的complete_login拉取用户信息并构造SocialLogin。3. complete_login 的实现细节views.py 中的complete_login展示了令牌的使用方式def complete_login(self, request, app, token, **kwargs): headers {Authorization: fBearer {token.token}} with get_adapter().get_requests_session() as sess: resp sess.get(self.userinfo_url, headersheaders) resp.raise_for_status() extra_data resp.json() return self.get_provider().sociallogin_from_response(request, extra_data)即将 OAuth2 访问令牌以Authorization: Bearer token的形式附加到请求头请求https://api.figma.com/v1/me获取当前用户资料再把返回的 JSON 交给 provider 完成登录对象构造。这里的get_requests_session()走 django-allauth 统一的会话管理见 allauth/socialaccount/adapter.py。六、用户数据提取与账号绑定用户资料如何映射为 Django 用户字段由 provider 类 allauth/socialaccount/providers/figma/provider.py 定义class FigmaProvider(OAuth2Provider): id figma name Figma account_class FigmaAccount oauth2_adapter_class FigmaOAuth2Adapter def extract_uid(self, data): return str(data[id]) def extract_common_fields(self, data): return { email: data.get(email), name: data.get(handle), } def extract_email_addresses(self, data): email EmailAddress( emaildata.get(email), primaryTrue, verifiedFalse, ) return [email]idprovider 标识符即 URL 中的figma段同时用于SOCIALACCOUNT_PROVIDERS字典的键extract_uid以 Figma 用户 API 返回的id字段作为社交账户的唯一标识用于账号去重与关联extract_common_fields将 Figma 的handle用户名映射为 Django 用户nameemail直接透传extract_email_addresses把 Figma 邮箱生成为EmailAddress记录标记为主邮箱primaryTrue。注意verifiedFalse——邮箱验证状态由 Figma 侧返回的数据决定django-allauth 并未将其视为已验证邮箱这符合第三方登录邮箱默认不可信的保守策略。此外FigmaAccount类提供get_avatar_url()从extra_data[img_url]读取 Figma 头像地址供模板中显示用户头像使用。provider 定义文件末尾通过providers.registry.register(FigmaProvider)完成注册这也是所有 provider 的通用注册方式provider 基类见 allauth/socialaccount/providers/base/provider.py。七、常见问题与排障回调地址不匹配redirect_uri mismatch请逐一核对 Figma 开发者平台登记的回调地址、Django 站点配置中的域名SITE_ID对应站点的 domain需与回调绝对地址的域名一致含http://localhost:8000或生产域名以及实际访问地址是否三者一致。邮箱未验证导致的流程中断由于extract_email_addresses将邮箱标记为verifiedFalse若项目启用了“邮箱验证后才可登录”等严格策略Figma 登录后可能要求用户额外验证邮箱。可通过调整ACCOUNT_EMAIL_VERIFICATION等账户设置适配业务需求参见 docs/account/configuration.rst。生产环境必须使用 HTTPSOAuth2 回调涉及令牌交换生产环境应确保站点启用 HTTPS并在 Figma 平台登记对应的https://回调地址。用户信息拉取失败complete_login中resp.raise_for_status()会在 Figma 用户信息端点返回非 2xx 时抛出异常请检查令牌是否有效、应用是否仍处于可用状态如已被删除或令牌被撤销。八、延伸阅读Figma provider 文档原始出处docs/socialaccount/providers/figma.rst全部已支持 provider 索引docs/socialaccount/providers/index.rst完整安装步骤docs/installation/quickstart.rst社交账户通用配置与SOCIALACCOUNT_PROVIDERS说明docs/socialaccount/configuration.rstFigma provider 实现源码provider.py、views.py、urls.pyOAuth2 通用适配器与路由生成逻辑oauth2/views.py、oauth2/urls.py赞分享后端认证鉴权身份认证【免费下载链接】django-allauthIntegrated set of Django applications addressing authentication, registration, account management as well as 3rd party (social) account authentication. Mirror of https://codeberg.org/allauth/django-allauth/项目地址https://gitcode.com/gh_mirrors/dj/django-allauth点击查看免费下载相关推荐思源宋体TTF字体专业设计师的5个隐藏优势与实战应用思源宋体TTF字体专业设计师的5个隐藏优势与实战应用 还在为中文排版的专业性与美观度难以兼顾而烦恼吗思源宋体TTF字体或许是你未曾发现的秘密武器。这款由Ad后端认证鉴权身份认证CogVideoX 文生视频本地实操从一条命令推理到 LoRA 微调CogVideoX 文生视频本地实操从一条命令推理到 LoRA 微调 CogVideo 是智谱 AI 开源的文生视频 / 图生视频模型目前主力是 CogVi后端认证鉴权身份认证Label Studio 时间序列与音视频同步标注指南基于时间与基于索引的配置方案Label Studio 时间序列与音视频同步标注指南基于时间与基于索引的配置方案 本指南以 Label Studio 官方时间序列模板 timeseries后端认证鉴权身份认证上一篇AtlasOS终极指南如何让你的Windows系统运行如飞性能提升50%下一篇FinBERT-FLS震撼发布金融前瞻语句智能分类的终极解决方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

263页 2024年“数据要素×”优秀项目案例集

263页 2024年“数据要素×”优秀项目案例集

适应人群适配政府大数据管理部门、各行业数字化负责人、数据治理与产业研究人员; also 适合大数据服务商、咨询顾问、政企信息化架构师、科研院校研究学者及产业链从业从业者。 重要性总结本案例集共计 263 页,覆盖工业制造、现代农业、交通物流、商贸流…

2026/9/24 17:12:19 阅读更多 →
PaddleSpeech WebSocket 服务层源码解析:`paddlespeech.server.ws` 模块的流式 ASR / TTS 接口设计

PaddleSpeech WebSocket 服务层源码解析:`paddlespeech.server.ws` 模块的流式 ASR / TTS 接口设计

人工智能语音音频 【免费下载链接】PaddleSpeech Easy-to-use Speech Toolkit including Self-Supervised Learning model, SOTA/Streaming ASR with punctuation, Streaming TTS with text frontend, Speaker Verification System, End-to-End Speech Translation and Keyword…

2026/9/24 17:11:19 阅读更多 →
PaddleHub Faster R-CNN ResNet50-FPN COCO2017 目标检测模块:安装、预测与 Serving 部署实战

PaddleHub Faster R-CNN ResNet50-FPN COCO2017 目标检测模块:安装、预测与 Serving 部署实战

PaddleHub Faster R-CNN ResNet50-FPN COCO2017 目标检测模块:安装、预测与 Serving 部署实战 【免费下载链接】PaddleFormers PaddleFormers is an easy-to-use library of pre-trained large language model zoo based on PaddlePaddle. 项目地址: https://gitc…

2026/9/24 17:11:19 阅读更多 →

最新新闻

博客系统接口测试用例设计

博客系统接口测试用例设计

2026/9/24 17:54:46 阅读更多 →
长上下文旗舰同日登场,推理成本战改写产业算力格局|林伽一 · AI科技日报 | 2026年09月23日

长上下文旗舰同日登场,推理成本战改写产业算力格局|林伽一 · AI科技日报 | 2026年09月23日

今日 AI 产业出现一组相互印证的信号:阶跃星辰发布 600B 参数的 Step 5 Preview、xAI 的 Grok 4.6 上线 Amazon Bedrock、阿里巴巴发布 7B 的 Qwen-Image-2.1,同日还有 RBS-Attention 提出 20.65 倍的预填充加速方法、AWS 开源 Strands Harness 智能体框…

2026/9/24 17:54:46 阅读更多 →
第一章-导言

第一章-导言

1.1入门 咱们学习一门编程语言&#xff0c;第一个程序当然是打印"hello worlld". #include <stdio.h>int main() {printf("hello world\n");return 0; } 一个C语言程序的运行必须要有main函数&#xff0c;他是函数的入口。printf("hello world…

2026/9/24 17:54:46 阅读更多 →
从零开始用 Linux:文件与目录操作

从零开始用 Linux:文件与目录操作

先确认你在哪&#xff1a;看终端的提示符——fjxfjx:~$ → 已经在 Ubuntu 里&#xff0c;直接往下敲C:\Users\72344> → 还是 Windows 的 cmd&#xff0c;先敲 wsl 回车进去第一步&#xff1a;装 g&#xff08;三条命令&#xff0c;依次敲&#xff09;sudo —— 怎么以管理员…

2026/9/24 17:54:46 阅读更多 →
技术碎碎念01

技术碎碎念01

一、多智能体系统1.1 受控多智能体 vs 开放式多智能体开放式的多智能体稳定性太难控制&#xff0c;操作不可预期。受控多智能体是一种很好的解决方案&#xff0c;虽然会丢失一些灵活性&#xff0c;但从企业场景的稳定性来看&#xff0c;很值得考虑。先固定再谈论自由&#xff0…

2026/9/24 17:54:46 阅读更多 →
告警中心:GPS 定位平台统一告警归集与闭环处置实践

告警中心:GPS 定位平台统一告警归集与闭环处置实践

摘要&#xff1a;设备离线、超速、越界、震动等各类异常事件分散推送&#xff0c;很容易造成告警遗漏、处置混乱。本文介绍平台告警中心的设计思路&#xff0c;实现多类型告警统一汇总、分级过滤、状态流转、日志留存&#xff0c;构建完整的异常事件闭环管理体系。0 引言很多定…

2026/9/24 17:53:46 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介&#xff1a;这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源&#xff0c;围绕YOLOv8实现渔船作业监控系统&#xff0c;可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件&#xff0c;约24.21MB&#xff0c;以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介&#xff1a;一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码&#xff0c;针对计算机相关专业正在做毕设或需要项目实战的学习者&#xff0c;可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过&#xff0c;可直接运行&#xff0c;覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住&#xff0c;是在一个老旧的WinForms模块里&#xff1a;几十个类依赖PropertyChanged通知&#xff0c;运行时反射读属性、发通知&#xff0c;每次启动慢半拍不说&#xff0c;一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事&#xff1a;用Flutter给OpenHarmony做一款游戏集合类的App&#xff0c;说白了就是把若干小游戏塞进一个壳里&#xff0c;用统一入口分发。这个方向本身不算新鲜&#xff0c;真正让我花了不少心思的&#xff0c;是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档&#xff0c;最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事&#xff1a;今天在表后面多加了两个空白行&#xff0c;明天给客户交稿前发现整个章节的编号全部错位&#xff0c;光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年&#xff0c;说实话&#xff0c;第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年&#xff0c;流量惨淡、功能臃肿、代码自己都懒得看第二遍之后&#xff0c;我才慢慢琢磨明白一个道理&#xff1a;第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践&#xff1a;原型怎样变成可用功能分类&#xff1a;[AI/大模型]细分主题&#xff1a;AI 增强型 CI/CD 流水线自动化与 GitOps 实践&#xff1a;Agent 工作流、工具调用与任务拆解&#xff1a;从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战&#xff1a;复盘记录怎样真正派上用场分类&#xff1a;[工程技术]细分主题&#xff1a;Kubernetes 生产环境运维与排障实战&#xff1a;可复制的项目复盘模板与决策记录大部分团队的事故复盘报告&#xff0c;最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理&#xff1a;核心链路应该先拆哪一步分类&#xff1a;[工程技术]细分主题&#xff1a;Docker 容器化技术与镜像安全管理&#xff1a;核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用&#xff08;包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →