PHPRPC是什么:
PHPRPC 是一个轻型的、安全的、跨网际的、跨语言的、跨平台的、跨环境的、跨域的、支持复杂对象传输的、支持引用参数传递的、支持内容输出重定向的、支持分级错误处理的、支持会话的、面向服务的高性能远程过程调用协议。
因为PHPRPC有以上诸多特性,那么我们的SSO也可以实现安全、快捷、跨域。
所以单点登录,就是用户只需要在中心认证服务器登录一次,然后浏览器通过中心认证服务器返回的信息轮询访问应用系统进行模拟登录,之后用户再访问应用系统的时候不需要登录就能访问了。
其实现原理就是浏览器(用phprpc for javascript)请求中心认证服务器(phprpc for php),通常此时的浏览器就是一个登录页面,浏览器将用户名和密码传递给中心认证服务器,中心认证服务器验证成功之后,查找数据库里此用户名和密码对应的信息,根据这些信息生成一个令牌(token)返回给浏览器,浏览器在用token访问应用系统,应用系统收到token之后,再用收到的token访问中心认证服务器,中心认证服务器通过这个token查找数据库,从而能够找到对应应用系统的用户名和密码,然后将这个用户名和密码返回给应用系统,应用系统再收到的用户名和密码进行登录(通常就是一次写SESSION或者COOKIE的过程)
借助一下数据库设计图,应该更好理解
就像设计图中所展示的,统一认证服务器收到浏览器通过javascript传递过来的用户名和密码检索“认证服务器用户表”,从而得到“用户ID”,根据“用户ID”再去检索“应用系统用户表”,然后就会得到一条或多条记录,把每一个结果都在“临时会话表”中生成一条记录,这里的“会话ID”是表的主键,也就是我们的token,而第二个字段id是对应的“应用系统用户表”的主键,还有一点比较重要,就是根据“应用系统ID”检索“应用系统表”,从而获得应用系统的地址。
然后统一认证服务器将token与应用系统的访问地址组成一个新的数组返回给浏览器
然后浏览器再运行JS将传回来的token作为参数访问应用系统服务端。
应用系统使用token访问统一认证服务器从而获取用户名和密码,获得用户名密码之后就完成了登录。
分享到:
相关推荐
标题 "基于dubbo的单点登录(sso)系统" 提示我们这个项目是关于构建一个使用Dubbo服务治理框架的单点登录(Single Sign-On, SSO)系统。SSO允许用户在一个应用系统中登录后,无需再次登录即可访问其他关联的应用系统...
总结:本文详细探讨了一种基于Thrift的跨平台单点登录实现方法,强调了Thrift在服务描述、服务端和客户端实现中的作用。这种方法克服了传统SSO方案如Cookie和Session机制的局限性,提供了更灵活、高效的解决方案,...
联系web和windows 应用的软件PHPRPC. PHPRPC for Delphi 是针对 Delphi 6 - 2009 原生程序开发版本的。如果你想将 PHPRPC 用于 Delphi.NET,请参见 PHPRPC for .NET 章节的相关内容。 PHPRPC for Delphi 的安装 ...
- **高效性能**:由于减少了不必要的协议开销,PHPRPC在性能上往往优于基于XML的Web服务。 - **跨平台**:只要是PHP环境,就可以实现PHPRPC的客户端和服务端。 - **安全**:通过加密和身份验证机制,PHPRPC可以...
本文档主要介绍了如何设计和实现一个单点登录(SSO)系统,遵循以下几个关键原则: 1. **不大规模改造现有应用**:设计时考虑到了已存在的Web应用系统,避免对其进行大规模修改,确保系统间的兼容性。 2. **不限制...
在实际应用中,开发人员可以根据自己的需求,通过`jsonrpc-c`库创建客户端和服务端程序,实现基于JSON的RPC通信。例如,客户端可以使用库提供的函数生成JSON请求,然后通过网络接口发送到服务器;服务器端则监听特定...
本文将深入探讨如何基于GXT的RPC与MVC实现登录和退出功能。 首先,让我们了解MVC模式。MVC是一种软件设计模式,将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。模型负责处理数据...
基于kitex RPC微服务和Hertz HTTP服务及gorm实现的极简抖音后端项目源码.zip基于kitex RPC微服务和Hertz HTTP服务及gorm实现的极简抖音后端项目源码.zip基于kitex RPC微服务和Hertz HTTP服务及gorm实现的极简抖音...
Phprpc是一个轻量级的PHP远程过程调用(RPC)框架,它允许开发者在不同的PHP进程中进行通信,实现服务间的高效数据交换。这个中文文档是对于Phprpc框架的详细解释,对于初学者和进阶用户都非常有用。文档包含了框架...
基于RPC实现的三方通信实例涉及客户端、服务器端以及节点端之间的交互,这在分布式系统中非常常见。下面将详细介绍RPC的基本概念、工作原理以及如何实现三方通信。 首先,RPC的核心思想是隐藏网络通信的复杂性,...
通过分析架构图,我们可以看到SSO是如何整合权限管理、消息中间件和远程服务调用等技术来实现单点登录功能的。 这个完整的SSO系统包很可能包含以下步骤来实现单点登录: 1. **用户认证**:用户通过统一的登录界面...
在这个主题中,我们将深入探讨如何利用Phprpc在Python环境中实现远程调用。 首先,我们需要了解RPC的基本概念。RPC允许一个程序调用另一个不在同一计算机上运行的程序,仿佛它们在同一台机器上并且直接通信一样。这...
基于sun rpc rpcgen 实现简单的NFS功能 能够列取远端目录文件,进行创建文件,创建目录,列取目录,删除空目录,删除文件操作。
PHPRPC3.0是一个高效且安全的远程过程调用(RPC)框架,专为实现服务器间的通信而设计。在IT行业中,RPC技术是分布式系统中的关键组件,它允许一个程序调用另一个运行在不同地址空间(可能在另一台机器上)的程序,...
PHPRPC .Net服务端与客户端是一套跨平台的远程过程调用(RPC)解决方案,专为.NET开发者设计,使得PHP和.NET应用之间能够高效、便捷地进行通信。这套工具集包含了服务端组件和客户端库,允许开发者在PHP环境中调用...
【标题】基于Netty实现Dubbo RPC 在分布式系统中,RPC(Remote Procedure Call)是一种常见且重要的通信机制,它允许一个程序调用另一个在不同进程中运行的程序,就像调用本地函数一样简单。Dubbo作为阿里巴巴开源...
基于 C++ 的 RPC 框架.zip基于 C++ 的 RPC 框架.zip基于 C++ 的 RPC 框架.zip基于 C++ 的 RPC 框架.zip基于 C++ 的 RPC 框架.zip基于 C++ 的 RPC 框架.zip基于 C++ 的 RPC 框架.zip基于 C++ 的 RPC 框架.zip基于 C++...
Phprpc是一个轻量级的远程过程调用(RPC)框架,它允许应用程序在不同的服务器之间交换数据和服务。在这个主题中,“修改phprpc源码以支持集合类的string类型的转换”涉及到对Phprpc框架的源代码进行定制化改造,以...
RPC的Java实现,自己一步一步实现,有助于分布式学习的理解。
Phprpc是一个轻量级的跨语言远程过程调用(RPC)框架,它允许不同的编程语言之间进行高效、便捷的数据交换和功能调用。这里提到的是Phprpc的3.0.2版本,针对Java平台,并且与Web服务(Webservice)相关。这通常意味...