1.了解三种小程序开发模式:SaaS模板、授权授权源码授权、登录登录定制开发的源码源码全面解析
2.OAuth2.0原理图解:第三方网站为什么可以使用微信登录
3.阿里Spring Security OAuth2.0认证授权笔记震撼开源!原理+实战+源码三飞!授权授权
了解三种小程序开发模式:SaaS模板、源码授权、源码源码源码中国官网定制开发的授权授权全面解析
小程序,作为现代便捷应用的登录登录代表,以其无需下载安装的源码源码特性,为用户提供了无缝的授权授权使用体验。相比传统的登录登录应用,小程序在开发成本、源码源码周期和维护上展现出明显优势,授权授权尤其对中小企业来说,登录登录是源码源码一个极具性价比的选择。
在触达用户方面,小程序通过微信公众号、二维码分享等手段,能够精准营销,提升用户粘性和转化率。这类轻量级应用,旨在提供便捷、安全的虚拟货币指标源码金融服务,覆盖银行、保险、证券、投资等多元化需求,满足用户对金融业务的高效利用。
而购物体验的提升,正是商城小程序的核心价值所在。通过便捷的在线购物模式,用户能够轻松浏览商品、下单购买、在线支付和追踪订单,享受高效、愉悦的购物过程。
小程序的开发模式大致分为三种:SaaS模板、源码授权、定制开发。每种模式都有其独特优势,企业应根据自身需求、预算和发展规划选择合适的开发路径。
SaaS模板小程序,基于标准化模板开发,用户仅需选择模板并进行配置即可快速上线。神牛周转源码其主要特点是功能选择有限,但开发周期短,上线速度快,无需备案和服务器搭建,且提供数据下载服务,但不支持个性化功能的添加和升级。
源码授权小程序,企业购买后可获得源码,具备二次开发和定制的能力。其优势在于功能较为完善,支持功能升级,且拥有源代码,企业可进行自主调整,但上线周期稍长,需进行服务器部署和备案,且不支持转至定制开发模式。
定制开发小程序,软件公司从零开始为企业的具体需求进行开发。它提供了高度的灵活性和定制化能力,支持功能升级,拥有完整源代码和自主开发权限。但开发周期较长,weixin 跳转源码生成上线前需进行一系列流程,且数据完全由企业掌控。
综上所述,企业应根据自身需求、预算和发展规划,选择最适合的开发模式。对于预算有限、功能需求不高的企业,SaaS模板小程序是理想之选;对于需要一定功能扩展和个性化定制的企业,源码授权模式更为合适;而对于有明确需求且预算充足,追求完全自主控制和个性化开发的企业,定制开发小程序无疑是最佳方案。
OAuth2.0原理图解:第三方网站为什么可以使用微信登录
假设小明开发了一个A网站,需要支持微信登录和淘宝账号登录。如果你是微信或者淘宝开发人员,你会怎么设计这个功能?本文结合淘宝开放平台官方文档以淘宝账号为例。
从最简单视角去思考,用户在网站A输入淘宝用户名和密码,网站A调用淘宝接口校验输入信息,校验通过则登陆成功,整体流程如下图:
上述思路存在什么问题?最显著问题就是信息安全问题。问题第一个方面是IDATA机载仪表源码用户需要将淘宝用户名和密码输入网站A,这样会带来用户名和密码泄露风险。问题第二个方面是如果用户不信任网站A,那么也不会输入淘宝用户名和密码,影响网站A业务开展。
OAuth是一种流行标准。如果执行这行这个标准,那么用户可以在不告知A网站淘宝用户名和密码情况下,使用淘宝账号登陆A网站。
目前已经发展到OAuth2.0版本,相较于1.0版本更加关注客户端开发者简易性,而且为桌面应用、web应用、手机设备提供专门认证流程。
OAuth2.0标准定义了四种角色:
四种角色交互流程:
本文场景对应四种角色:
OAuth2.0标准定义了以下四种授权模式:
四种授权模式中最常用的是授权码模式,例如微信开发平台文档介绍对于网站应用微信OAuth2.0授权登录目前支持授权码模式,所以本文只介绍授权码模式,后续文章会详细比较四种模式。
第一个流程是创建应用,A网站开发者首先去淘宝开放平台创建应用,开放平台会生成一个client_id作为A网站唯一标识。
第二个流程是授权流程,用户在A网站点击使用淘宝账号登陆时,实际上跳转至A网站拼接授权URL页面,这个页面由淘宝提供。用户在授权页面输入淘宝用户名和密码,校验成功后跳转至A网站回调地址,这时A网站会拿到一个code,后台再使用code去获取access_token。
第三个流程是获取信息,获取到access_token相当于获取到一把钥匙,再按照规范调用淘宝对外提供接口就可以获取到用户数据。
第一个方面A网站开发人员需要在淘宝开放平台进行申请,需要输入个人信息或者公司信息,这样A网站可靠性有了一定程度保证。
第二个方面在第一章节方案用户需要在A网站输入淘宝用户名和密码,但是在OAuth2.0方案虽然也要输入淘宝用户名密码,但是这个页面由淘宝官方提供,安全性得到了保证。
第三个方面access_token(令牌)并没有在浏览器中传递,而是需要A网站在获取到code之后去后台程序换取,避免了钥匙泄露风险。
第四个方面code(授权码)在浏览器传递有一定风险,但是具有两个特性一定程度保证了安全:
在第二章节详细分析了OAuth2.0协议,在实现流程章节分析了创建应用、授权流程、获取信息三个流程,我们发现一个问题:在流程图步骤资源服务器需要远程调用授权服务器check_token端点校验令牌是否消息,这样比较消耗性能。
如果资源服务器和授权服务器约定一个密钥对,授权服务器用秘钥加密令牌,当资源服务器接收到令牌时进行解密直接对令牌进行校验,这样可以节省远程交互。
JSON Web Token(JWT)可以解决上述问题,作为一个开放标准(RFC )定义了一种紧凑的自包含方式,用于作为JSON对象在各方之间安全地传输信息。
JWT分为头部、有效载荷和签名三个部分。头部包含签名算法以及token类型。有效载荷包含真正业务信息,例如用户ID、姓名、邮箱、权限信息。头部和有效载荷任何人都可以读出来,所以需要用签名防止篡改:头部和有效载荷分别进行Base编码,编码后用 . 连接组成新字符串,再使用头部声明算法进行签名。
JWT令牌内容:
JWT解码内容:
在第二章节详细分析了OAuth2.0协议,我们还发现一个问题:客户端在获取到令牌之后,还需要调用资源服务器接口获取用户信息,有没有一种协议可以在返回令牌时同时将用户是谁返回呢?
回答这个问题之前首先对比一组概念:授权与认证。授权关注通信实体具有什么权限,认证关注通信实体是谁。OAuth2.0只有授权流程,返回令牌之后授权流程已经完成,OpenID Connect在此基础上进行了扩展,客户端能够通过认证来识别用户。
OpenID Connect定义了三种角色:
三种角色交互流程:
本文场景对应三种角色:
OIDC标准协议新增id_token字段,这个字段符合JWT标准格式。为什么不与第三章节一样在access_token包含有效负载信息,而是新增id_token字段?因为即使access_token可以加入用户信息并且防篡改,但是用户每次请求都需要携带access_token,增加了带宽和用户信息泄露风险。
OIDC标准协议要求提供了一个/userinfo端点,可以通过access_token调用获取用户信息,那么id_token已经包含了用户信息,为什么还要提供此端点呢?
原因是id_token提供用户基本信息,如果客户端只要求获取基本信息,那么无需调用/userinfo端点。如果需要获取用户详细信息,那么可以调用/userinfo端点。
JWT在线编码工具
JWT在线解码工具
淘宝开放平台用户授权介绍
网站应用微信登录开发指南
欢迎大家关注公众号「JAVA前线」查看更多精彩分享文章,主要包括源码分析、实际应用、架构思维、职场分享、产品思考等等,同时欢迎大家加我个人微信「java_front」一起交流学习
阿里Spring Security OAuth2.0认证授权笔记震撼开源!原理+实战+源码三飞!
Spring Security是一款强大的企业级安全框架,它作为Spring生态系统的组成部分,为Spring应用提供声明式安全访问控制。在Spring Boot项目中,集成Spring Security能够简化安全控制代码编写,减少重复工作。 在移动互联网时代,微信等应用的认证过程是用户身份验证的典型例子。认证是指确认用户身份是否合法,例如通过账号密码、二维码或指纹等方式。OAuth2.0作为OAuth协议的升级版本,允许用户授权第三方应用访问其存储信息,无需分享用户名和密码,提供了一种安全的授权协议。 针对Spring Security的学习资料相对较少,本文档将提供两部分深入讲解:首先,通过XML配置在SSM环境中,从源码解析,详解Spring Security的认证、授权(包括“记住我”和CSRF拦截)功能。其次,在Spring Boot中,深入探讨分布式环境下的认证与授权实现。第一份笔记:
基本概念
基于Session的认证
快速上手Spring Security
应用详解
分布式系统认证方案
OAuth2.0介绍
分布式系统授权实现
企业开发首选的Spring Security笔记:
初识Spring Security
授权操作
集中式Spring Security与SpringBoot整合
OAuth2.0实战案例
需要完整文档和源码的朋友,可通过此链接获取:[点击获取链接]