IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:OAuth

共 29 篇相关文章

IT 累计浏览 6,647

如何设计用户登录

这篇讲的是如何设计一个灵活可扩展的用户登录系统。作者从最常见的用户名+密码登录入手,指出当需要集成微博、QQ等第三方登录时,传统做法——在Users表中不断新增列来存储OAuth信息——会导致表结构日益臃肿,维护成本很高。 核心解决方案是将“用户资料”与“认证信息”进行分离。具体来说,将Users表精简为只存放用户个人资料(Profile);而将登录认证(Authentication)过程独立出来。本地密码登录维护一个LocalAuth表,而微博、QQ等第三方OAuth登录则统一到一个OAuth表中,通过`oauth_name`字段区分不同来源。 这种设计的好处显而易见:添加新的登录方式(如SAML)只需新增记录或表,无需改动用户主表;一个用户可以绑定多种登录方式;同时,由于Users表不再存放口令等敏感数据,系统安全性也得到了提升。

IT 累计浏览 17,471

微信扫码登录网页实现原理

这篇文章从作者的一次腾讯面试经历出发,深入剖析了微信扫码登录网页版的核心技术原理。作者通过浏览器工具抓包,逐步拆解了整个流程:首先,网页会生成一个包含唯一临时ID(uid)的二维码;同时,前端会通过创建一个长连接(长轮询)来持续监听该uid的扫描状态。如果扫码超时(约27秒),服务器会返回408状态码;一旦手机端扫码,即上报uid与手机令牌的绑定关系,长轮询便会收到201状态码,网页随即跳转至确认页面。最终用户在手机确认后,服务器才会下发授权令牌,完成整个登录交互。 文章的巧妙之处在于,它清晰地揭示了微信如何利用“长轮询”实时性好、轮询次数少的特点,高效同步了网页与手机端的状态。同时,通过临时uid、网络断开后令牌失效等机制,在便利性与安全性之间取得了不错的平衡。作者结合实际的网络请求代码片段和状态码截图,让这个看似复杂的流程变得直观易懂。

IT 累计浏览 10,622

初探单点登录 SSO

这篇讲的是单点登录(SSO)的基本原理,并通过淘宝与京东的实例,对比了两种主流实现策略的差异。 文章先阐释了SSO如何解决多产品线下的用户体验问题,即“一次登录,处处通行”。其核心在于认证系统为每个应用颁发“钥匙”(存于Cookie)。关键差异在于应用间如何获取这把钥匙。 作者通过抓包分析揭示了两种路径:淘宝的策略更偏向“后置式”,用户访问聚划算等未登录站点时,通过一系列跳转,由主站(taobao.com)的凭证去认证中心为当前站点领取新凭证。而京东的策略则是“前置式”,用户登录主站(jd.com)后,页面中的JS代码会立即通过JSONP跨域请求,主动为旗下所有子应用预置好登录凭证,实现更无缝的体验。 这种基于实际网络请求的剖析,清晰展示了SSO在“便利性”与“安全流程”之间的权衡,对于理解企业级统一认证架构的设计思路很有启发。

IT 累计浏览 2,112

雅虎中国:终身免费邮箱

2007年,雅虎中国高调推出“终身免费邮箱”,并扬言要与网易打持久战。然而仅六年后,这项“终身”服务便宣告关闭。 这篇文章复盘了这起商业承诺的演变。作者指出,邮箱本身很难直接盈利,其对互联网巨头的真正价值在于构建一个核心“用户体系”,并以此推行“通行证策略”——用一个账号打通所有服务,从而深度了解用户行为,为商业决策提供支撑,例如谷歌的Gmail与微软的Hotmail。 对于运营雅虎中国的阿里而言,这套逻辑并不适用。阿里自身拥有庞大的电商用户体系和独立的IM工具(阿里旺旺),并不依赖雅虎邮箱来建立通行证。从独立业务看,雅虎中国邮箱也并非市场领导者。因此,在阿里逐步摆脱对雅虎总部的依赖后,关闭这个既不赚钱又缺乏战略意义的业务,便成了顺理成章的选择。文章揭示了一个朴素的商业逻辑:巨头的承诺往往服务于特定阶段的战略,当战略本身发生变化时,“大话”也就有了合理的注脚。

IT 累计浏览 4,229

百度站内应用开发体验及demo代码

作者终于结束“潜水”,带来了一篇扎实的实践分享。这篇文章聚焦于他在百度站内应用(Baidu Instant App)开发中的完整体验。 作者从零开始,详细记录了开发环境搭建、核心能力接入、与百度地图等服务交互的具体过程。他不仅梳理了官方文档与实际开发间可能存在的差异,还坦诚地分享了调试过程中遇到的典型问题,比如接口调用的异步处理和特定机型的兼容性测试。 文末附上了可运行的demo代码,这份代码本身就是极佳的学习材料,直观展示了从界面构建到数据请求的完整链路。对于有志于开拓百度生态、探索轻量化应用形态的开发者而言,这篇来自一线的体验报告和配套代码,提供了非常具体的参考路径。

IT 累计浏览 5,166

一个简单的基于PhoneGap的开源微博客户端

这篇讲的是如何用PhoneGap这类跨平台框架突破其自身局限,构建一个完整的开源微博客户端。作者从一个常见的质疑出发——有人说PhoneGap只能做简单应用,无法胜任微博客户端这类复杂需求——然后点出了核心矛盾:仅仅依赖PhoneGap的标准API,确实搞不定像OAuth认证这种流程,页面跳转容易“迷路”。 但作者随即给出了关键解法:别忘了PhoneGap的插件系统。他指路到GitHub上的插件库,明确指出那里已经有现成的、成熟的OAuth2插件(例如Facebook登录插件),这直接解决了认证难题。为了验证这个思路,作者实际动手做出了一个可用的开源微博客户端。这个案例不仅反驳了最初的质疑,更清晰地展示了一种开发范式:当框架标准能力不足时,通过其强大的扩展生态来补足,依然能驾驭复杂应用。

IT 累计浏览 2,450

Tweets2PDF开发手记

这篇讲的是作者从个人需求出发,快速用Python实现了一个Twitter推文备份工具的故事。 作者一直想学Python,恰好临近过年有了空闲,萌生了将自己Twitter上的推文导出保存为PDF的想法。想到就做,他决定借此机会动手实践,对比了C和Python的开发效率后,果断选择了后者以缩短开发周期。经过几天的集中“折腾”,一个名为Tweets2PDF的小工具便诞生了,能够完成推文的获取与PDF格式导出。 文章记录了从灵感到落地的完整过程。其中核心的决策点在于技术选型:在时间有限的前提下,Python显著的开发效率优势,让作者得以快速实现功能原型。这体现了一种务实的工程思路——优先让想法变成可用的产品。工具虽小,却完整覆盖了数据获取、处理和格式化的关键环节,对于想学习快速原型开发或了解Twitter API初步应用的读者来说,这个简短的实践记录提供了清晰的路径参考。

IT 累计浏览 2,859

如何设计“找回用户帐号”功能

这篇文章讨论的是如何设计“找回用户帐号”功能,作者从腾讯帐号申诉功能引发的社区讨论出发,旨在打破“腾讯方案就是唯一标杆”的印象,进行了一次设计思路的梳理与对比。 作者指出,许多从业者可能并未深入观察和思考过其他成熟系统的做法。因此,这篇文章系统地拆解了“找回帐号”这一场景的核心设计考量点,例如验证信息的组合策略、安全层级与用户体验的平衡、以及不同产品阶段的方案演进。它并非提供单一的代码实现,而是对比了多种业界常见实现路径(如邮箱、手机、安全问题、人工审核等)的优劣和适用场景。 最终,文章为读者提供了一份清晰的设计决策清单,帮助产品和技术人员根据自身产品的用户量级、安全要求和信任环境,选择或组合出最合适的找回方案。这种对行业常见做法的梳理,为设计者提供了超越单一案例的、更开阔的视角。

IT 累计浏览 3,190

OAuth的改变

这篇讲的是OAuth协议本身的“进化史”。作者从之前那篇概览文章出发,这次一头扎进了版本迭代的细节里,为我们梳理了OAuth从1.0到1.0a,再到2.0的完整演变脉络。 文章的核心在于对比。它没有停留在表面特性,而是深入剖析了每次改变背后的驱动因素:比如1.0a对1.0一个关键安全漏洞的紧急修复;又比如2.0为何要进行一场近乎推倒重来的设计革新,以适应现代Web和移动端的复杂授权场景。作者清晰地解释了每个版本在签名方式、流程和信任模型上的关键差异,并指出了它们各自适用的技术背景。 最让人有收获的是,作者并非简单罗列变更日志,而是像一位向导,带我们看清了协议从“能用但粗糙”到“安全且灵活”的演进逻辑。这有助于开发者理解当下OAuth 2.0规范中许多设计背后的“为什么”,而不仅仅是“怎么用”。

IT 累计浏览 6,379

你会做Web上的用户登录功能吗?

这篇讲的是Web用户登录功能中那些容易被忽略的安全陷阱。作者从实际观察到的许多网站登录实现问题出发,指出这个看似基础的功能,实际做起来比想象中复杂。 文章首先拆解了常见的错误做法——比如前端明文传输密码、数据库使用明文存储、缺乏防护的暴力破解机制等。随后详细对比了安全实现的核心要素:必须使用HTTPS全站加密传输,后端密码存储需采用加盐哈希(如bcrypt),并设计合理的登录失败限流策略。同时,文章也提醒开发者关注会话管理(如HttpOnly、Secure标记的Cookie)和CSRF防护。 这些细节直接关系到用户数据安全。作者通过具体案例说明,省略任何一个环节都可能导致账户被批量入侵。文章结尾强调,登录模块是安全架构的第一道门槛,值得开发者用更严谨的态度来设计和实现。

IT 累计浏览 1,893

社会化时代依然是流量为王

这篇讲的是,尽管社交媒体带来了新的传播规则,但流量作为核心竞争力的本质并未改变。作者通过两个典型案例展开分析:一个是某内容创作者深耕垂直领域,通过持续产出高质量内容在抖音上积累了数十万忠实粉丝,最终实现稳定变现;另一个是某品牌盲目追求“社交声量”,在微博投入大量资源做话题营销,却因缺乏有效导流和转化路径,最终只换来短暂喧嚣,实际业务增长寥寥。 文章的核心观点是,在“社会化”表象之下,对流量本质——即持续、可运营、能转化的用户注意力——的把握能力,依然是决定成败的关键。作者指出,许多运营者容易被平台的新玩法、新工具迷惑,而忽略了构建自身流量池和转化漏斗这一根本任务。无论是个人创作者还是企业,都需要从“追逐热点”转向“经营流量”,将一次性的曝光转化为可持续的资产。 对读者而言,这提醒我们不要被社交媒体的“社交”属性所束缚,而应穿透表象,关注流量背后从吸引、留存到转化的完整逻辑链。在选择渠道和制定策略时,应首先评估其能否有效积累并运营起属于自己的流量资产。

IT 累计浏览 2,741

如何将TTURLRequest和OAuthConsumer搭配使用

这篇讲的是在使用 Three20 框架进行 iOS 开发时,如何让网络请求支持 OAuth 认证。具体来说,它聚焦于框架自带的 `TTURLRequest` 类与独立的 `OAuthConsumer` 库的协同工作。 文章的核心方案是搭建两者之间的桥梁。作者从实际开发中需要安全调用第三方 API 的场景出发,指出了 `TTURLRequest` 虽好用但缺乏内置 OAuth 支持的痛点。接着,他并没有停留在理论,而是给出了清晰的“适配器”实现思路:如何在 `TTURLRequest` 的生命周期中,嵌入 `OAuthConsumer` 的签名处理步骤。这通常涉及自定义请求类,覆写关键方法,并正确管理 Token 等凭证。 讲解过程中,作者会展示具体的代码片段和集成步骤,让读者看到从零开始配置的完整过程。这种搭配使用的好处在于,既能享受 `TTURLRequest` 带来的请求管理和缓存等便利,又能通过成熟的 `OAuthConsumer` 库获得可靠的认证能力,避免了从头造轮子的风险。对于正在使用 Three20 并需要对接微博、豆瓣等 OAuth 服务的开发者来说,这提供了一个经过验证的、可直接落地的技术路径。

IT 累计浏览 5,216

基于PECL OAuth打造微博应用

作者从国内主流网站相继开放微博平台这一背景切入,点出了开发者面临的一个实际问题:许多平台提供的PHP SDK质量参差不齐,大多由TwitterOAuth修改而来,一旦在项目中集成多个微博平台,极易引发类命名冲突等棘手问题。 针对这一痛点,文章提出使用PHP的PECL OAuth扩展作为解决方案。相比依赖第三方封装的库,直接调用PECL扩展能提供更底层、更稳定的OAuth协议支持。作者详细讲解了如何利用这一扩展来规范和实现OAuth认证流程,从而在根源上避免因SDK混用导致的代码冲突。 通过采用PECL OAuth,开发者可以获得更清晰的代码结构与更强的可控性,为多平台微博应用集成提供了可靠的技术路径。

IT 累计浏览 3,705

国内的开放平台就是一个玩笑

这篇吐槽从作者煮面条的糟糕体验切入,将“国内开放平台”的现状比作这碗难以下咽的面条——形式大于实质,问题层出不穷。作者并非在进行严谨的技术评测,而是以一种略带戏谑和情绪化的笔调,道出了许多开发者在实际使用国内各类开放平台时遇到的共同困境:文档模糊、接口不稳、政策变动频繁,以及缺乏真正以开发者为中心的生态建设。 文章的核心观点尖锐而直接:许多标榜“开放”的平台,实则封闭、混乱,甚至像个玩笑。它没有给出解决方案,而是通过个人化的愤怒表达,折射出一个普遍现象——平台方往往更关注自身的商业利益和数据闭环,而非为开发者提供稳定、可预期的创新环境。这种“伪开放”正在消耗开发者的信任与热情。 对于技术读者而言,这篇文章更像是一面镜子。它跳出了具体的技术细节,让我们看到平台工具之外的“人”与“生态”问题。读完可能会让你会心一笑,因为它戳破了那些华丽的宣传口号,直指体验的本质。

IT 累计浏览 5,061

为什么要登录?

这篇讲的是,我们每天都在用的登录功能背后,藏着哪些被忽略的设计哲学。 作者从那个经典的“用户名+密码”登录框出发,没有停留在功能实现层面,而是深入剖析了“登录”这件事的必要性。文章指出,登录远不止是安全验证的入口,它更是用户与平台建立关系的第一道桥梁——通过它,系统才能真正“认识”你,从而提供个性化的体验、保存你的偏好与历史,以及构建一个可追溯、可负责的互动环境。从技术视角看,登录是状态管理、权限控制和数据隔离的基石,决定了后续所有交互的边界与可能性。作者也提到,这一设计看似简单,却直接关系到产品的可用性与信任度。 读完这篇文章,能让我们重新审视这个习以为常的按钮:它既是个性化的起点,也是责任划分的界线。理解了这一点,或许下次设计或使用登录功能时,会多一分对用户体验和系统架构的考量。

IT 累计浏览 5,025

新浪微博OAuth认证流程分析

这篇讲的是新浪微博 OAuth 2.0 授权流程的实现细节。作者从一次实际应用接入遇到的授权后身份丢失问题出发,深入拆解了授权码模式的四个关键步骤:用户授权、获取授权码、换取访问令牌以及令牌刷新。文章不仅梳理了标准流程,更着重分析了微博实现中容易被忽略的部分,例如 `state` 参数如何有效防御 CSRF 攻击、授权码一次性使用且短时有效的安全设计,以及访问令牌与刷新令牌的存储和更新策略。对于移动端场景,作者还对比了令牌在客户端存储的不同方案(如 Keychain 与本地存储)的安全性差异。通过流程图和关键代码片段的剖析,文章揭示了微博如何平衡开放性与安全性,为开发者规避常见踩坑点提供了清晰的路线图。

IT 累计浏览 3,758

【社会化设计】自我(self)部分――密码反面模式(the Password Anti-pattern)

这篇讲的是,很多开发者在构建用户认证系统时,会不自觉地陷入一个常见却危险的“密码反面模式”。作者从“社会化设计”的视角出发,揭示了这种模式的本质:简单地将密码存储于用户数据中,并仅靠前端校验或明文传输。 这种做法看似实现了登录功能,实则埋下了严重的安全隐患。文章剖析了其具体表现,比如将用户密码和账号信息并列存放在同一数据库表、传输过程缺乏加密保护等。它强调,这不仅违反了基本的安全设计原则,更在用户信任和数据保护上留下了巨大缺口。 作者指出,正确的做法应该是采用哈希加盐存储、强制使用HTTPS传输,并引导用户使用密码管理器而非依赖记忆。这篇文章的价值在于,它提醒开发者在设计用户系统时,必须超越“功能实现”的思维,从一开始就将安全性作为架构的核心考量,而不是事后补救的漏洞。

IT 累计浏览 4,288

OAuth那些事儿

这篇讲的是OAuth协议如何像一位“安全中介”,优雅地解决了互联网上一个棘手的授权问题。 文章开篇用牛顿的比喻,引出了OAuth在账号安全领域的基石地位。核心探讨的是:在第三方应用需要访问用户数据时,如何避免直接交出账号密码的巨大风险?OAuth的解决方案是引入一种“委托认证”机制。 文章具体阐述了其核心流程:用户授权后,第三方应用获取的是一个受限的“访问令牌”,而非密码本身。这个令牌有明确的权限范围和有效期。文章很可能通过一个生动的例子(如用微博账号登录第三方网站),拆解了授权码流程等关键步骤,揭示了其背后“以令牌换权限”的巧妙设计。 最终,OAuth实现了安全与便利的平衡:用户无需共享密码,即可让受信任的应用在有限范围内访问自己的数据,而平台也能精细地控制访问权限。这种机制已成为现代开放平台的标配。

IT 累计浏览 3,269

[演讲稿]OAuth1.0协议

这篇讲的是OAuth1.0协议本身。作为OAuth标准的“开山之作”,这份演讲稿深入剖析了它如何解决一个核心痛点:让第三方应用在不获取用户密码的前提下,安全地获取对用户资源的有限访问权限。 内容从协议的诞生背景切入,详细拆解了其“委托授权”的核心设计原则。最值得玩味的是它的流程设计,尤其是那个要求所有请求都必须携带数字签名的机制。这个签名过程虽然极大地增强了安全性,有效防止了请求被篡改和重放攻击,但也导致了实现起来相当繁琐,客户端和服务端都需要处理复杂的签名逻辑。 因此,讲解中自然也会将它与更主流的OAuth2.0进行对比。一个关键区别在于,OAuth1.0强制使用签名,而OAuth2.0则完全依赖TLS(HTTPS)来保证传输安全,从而大大简化了流程。这使得OAuth2.0在移动和Web应用中更为流行,但OAuth1.0那种对客户端密钥和请求签名的严格校验,在某些对安全性要求极高、系统架构相对传统的场景下,依然有其不可替代的价值。