后端认证鉴权身份认证【免费下载链接】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),仅供参考
企业数字化 ERP 产品动态
相关推荐
【SRC】EDU实战篇8:越权漏洞挖掘的页面联动与逻辑批量探测技巧 文章目录 思路 案例一(功能越权) 案例二(IDOR) 站点1 站点2 站点3 站点4 站点5 站点6 站点7 案例三(修改返回包) 站点1 站点2 案例四(JWT越权) 站点1 案例五(前端分析绕过) 站点1 站点2 站点3 站点4 总结 ⚠️本博文所涉安全渗透测试技术、方法及案例,仅用于网络安全… · 2026/9/24 17:12:07
mysql 专业笔记 -- 第 39 章:事件(EVENTS) 第 39.1 节:创建事件
MySQL 提供了事件功能,避免在大部分调度工作与 SQL 相关、与文件相关较少时使用复杂的 cron 交互。更多信息请参阅手册。可将事件视为按重复间隔计划运行的存储过程。
为节省调试事件相关问题的时间,请记住全局事件处理程序必须开启才能处理事件。
S… · 2026/9/24 17:12:07
边缘AI应用:事关家庭隐私,家用AI摄像头的哪些AI任务在本地完成 家用AI摄像头的隐私风险不在于有没有AI,而是要弄清楚AI推理发生在哪里——是在摄像头本地芯片上完成,还是把视频传到云端处理。而本地推理的任务之所以安全,是因为摄像头拍到的原始视频没有离开设备,你的摄像头安装在家里… · 2026/9/24 17:53:30
第六篇:《Codex 桌面应用实战:多智能体并行协作》 如果说 Codex CLI 是“一个智能体在终端里干活”,那么 Codex 桌面应用就是“一个指挥中心,同时调度多个智能体并行工作”。2026 年 2 月,OpenAI 推出了 Codex macOS 桌面应用,将其定位为 “代理指挥中心”(Command Cen… · 2026/9/24 17:53:23
第五篇:《Codex CLI 安装与快速上手:从零到第一个任务》 Codex 的桌面应用提供了直观的图形界面,但如果你想在终端中直接委托任务,或者需要在 CI/CD 流水线中集成 AI 编码能力,Codex CLI 才是真正的起点。它是 OpenAI 官方开源的终端 AI 编程智能体,用 Rust 实现,能在你的项目… · 2026/9/24 17:53:23
开工才发现缺料,BOM、库存、采购怎么串起来?物料齐套系统选型 制造业里最让人头疼的场面之一,就是工单已经下发了、工人已经到位了,开工才发现——缺料。A料库存不够,B料采购还没到,C料在仓库里但没人知道在哪。生产计划被迫中断,交期一拖再拖。 这个问题的根源,不是库… · 2026/9/24 17:52:58
设备不会说话:一天里的七层证据 设备不会说话:一天里的七层证据标签:有限状态机、互斥租约、生产者-消费者、内存池、构建指纹、软限位、图像显示链路、统计基线、git 语义
引言:设备不会说话。它不会告诉你"我现在很忙",也不会解释"刚才那次为什… · 2026/9/24 17:52:58
毕业设计说明书和毕业论文:图纸说明先落在谁那里,改一次要回头动几处 说明书与论文这两份文本的分工,不看你把哪段写进哪一本,而看这一处内容改一次要连带动几份。图纸说明大多两条船都踩:动一处就得回头核另一处。文末两项能力可以免费用起来:一项先把章节骨架整段搭起来,一项把图表公式… · 2026/9/24 17:52:58
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44