`
javayestome
  • 浏览: 1041746 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

[27期] 利用cookie实现SSO(网上搜的,分享下)

 
阅读更多

利用cookie实现跨域,可以称为SSO单点登录

A网站首页PHP(也可以在登录页面加入下面的代码)加入如下代码
view plaincopy to clipboardprint?
1. <?php
2. //清空cookies
3. setcookie("mywinduid");
4. //为B页面权限设置cookie, setcookie("mywinduid",$winduid,time()+60*60*24);//设置为1天失效,下面为关闭浏览器失效
5. setcookie("mywinduid",$winduid);
6. ?>

A网站增加文件getcookies.php,目的是为了让B网站可以以ajax方式来查询A网站的cookie
getcookies.php 代码如下
view plaincopy to clipboardprint?
1. <?php
2. $callback = $_GET['jsoncallback'];
3. $mywinduid = $_COOKIE['mywinduid'];//多个参数的话以","隔开,例如json_encode(array('winduid'=>$winduid,'msg'=>$msg));
4. //可以用json_encode自动转换,也可以手写json格式 $json_data = '{"mywinduid":'.$mywinduid.'}';
5. $json_data = json_encode(array('mywinduid'=>$mywinduid));
6. //必需以下这样形式输出,重点就是发送请求的网页的参数中要有jsoncallback参数
7. echo $callback.'('.$json_data.')';
8. ?>

在需要查询A网站cookie的B网站页面中增加如下代码
view plaincopy to clipboardprint?
1. <script type="text/javascript" src="jquery-1.6.1.min.js"></script>
2. <script type="text/javascript" src="jquery.cookie.js"></script>
3. <script type="text/javascript">
4. $(function(){
5. $("#adminwhj").click(function(){//点击B网站中的登录按钮,这地方也可以不需要用click,直接打开页面就获取cookie
6. var myurl = "http://www.a.com/getcookies.php?action=getcookie";
7. $.getJSON(myurl+"&jsoncallback=?", function(data){
8. if(data.mywinduid!="" && data.mywinduid!= null){
9. var winduid = data.mywinduid;
10. if((winduid==4)||(winduid==2)){
11. $.cookie('mywinduid',winduid);//设置cookies
12. location.reload();//刷新页面
13. }else{
14. alert("您没有管理权限!");
15. }
16. }else{
17. alert("请在www.a.com登录后再进行管理");
18. }
19. })
20. })
21. })
22. </script>

下面是B网站的这个页面中需要做权限判断的代码
view plaincopy to clipboardprint?
1. <!--需要权限的判断开始-->
2. <?
3. $winduid=$_COOKIE["mywinduid"];
4. if (($winduid==4)||($winduid==2))
5. {<!--管理需要的代码-->}
6. ?>


整个原理就是,B网站上文件可以通过A网站的getcookies.php来获取A网站的cookie,然后在B网站的页面提供权限判断,这样B网站中不需要再单独做用户登录


分享到:
评论

相关推荐

    java 基于 Cookie 的 SSO 中间件 kisso 低代码

    总的来说,Kisso是Java环境下实现基于Cookie的SSO的一种高效解决方案,尤其适合对SSO有需求但希望减少编码量的项目。通过深入理解Kisso的架构和工作流程,开发者可以轻松地在自己的应用中部署SSO功能。

    jforum与web项目的整合(通过Cookie实现SSO)

    标题 "jforum与web项目的整合(通过Cookie实现SSO)" 涉及的是将开源的JForum论坛系统与其他Web应用程序进行集成,并利用Cookie技术实现单点登录(Single Sign-On,简称SSO)。SSO允许用户在一个应用系统中登录后,...

    SSO单点登录【基于cookie二级域名下跨域共享】

    在基于Cookie的二级域名下跨域共享SSO实现中,核心概念是利用Cookie的特性来实现用户身份的共享与传递。 首先,我们了解SSO的工作原理。当用户首次访问一个应用系统(例如,`app1.example.com`)时,如果用户尚未...

    .NET Core2.0+MVC 用Redis/Memory+cookie实现的sso单点登录

    在这个项目中,我们将深入探讨如何利用Redis或Memory Cache以及cookie来实现SSO。 首先,SSO的核心理念是让用户在访问多个相互关联的应用时只需要登录一次,之后就能在这些应用间自由切换,无需重复认证。这对于...

    cookie sso 基于 Cookie 的 SSO 中间件,它是一把快速开发 java Web 登录系统

    总的来说,Cookie SSO中间件如Kisso-dev简化了Java Web应用程序的SSO实现,但同时也要求开发者充分理解和掌握相关的安全措施,以确保用户数据的安全。在实际开发过程中,根据项目的具体需求,灵活调整和优化SSO...

    sso-use-cookie单点登录

    在这个项目中,我们利用SpringBoot框架来实现基于Cookie的SSO。下面将详细解释这个项目的实现原理、流程以及涉及的关键技术。 一、SpringBoot与SSO结合 SpringBoot以其简洁的配置和强大的功能深受开发者喜爱,是...

    SSO个人实现方式

    在本文中,我们将探讨SSO的原理,以及如何通过提供的压缩包文件实现个人SSO系统。 SSO的核心思想是将用户认证过程集中管理,当用户成功登录到一个“认证中心”后,可以在其他已集成的系统中无缝漫游。这减少了用户...

    CAS实现sso单点登录原理

    1. 共享cookies基于共享同域的cookie是Web刚开始阶段时使用的一种方式,它利用浏览同域名之间自动传递cookies机制,实现两个域名之间系统令牌传递问题。 2. Broker-based(基于经纪人)这种技术的特点就是,有一个...

    基于JWT实现SSO单点登录流程图解

    基于JWT实现SSO单点登录流程图解 基于JWT实现SSO单点登录流程图解是指使用JSON Web Token(JWT)来实现单点登录(SSO)的机制。在这种机制中,用户只需要登录一次,就可以访问多个应用服务器上的资源,而不需要再次...

    关于SSO单点登录的简单实现

    在实际开发中,可以利用开源的SSO框架,如Spring Security的CAS模块,或者使用现成的解决方案,如Okta、Azure AD等,以简化实现过程。 总之,SSO单点登录为用户提供了便捷的访问体验,同时降低了管理多系统登录的...

    ssm redis实现sso单点登录

    接下来,我们需要利用Spring的Security模块来实现认证和授权。Spring Security是一个高度可定制的安全管理框架,可以方便地集成到Spring MVC中,提供用户认证、权限控制等功能。我们需要为SSO创建特定的过滤器链,...

    spring boot 实现SSO单点登陆

    spring boot整合spring security 实现SSO单点登陆 完整DEMO. ...2、先后启动SsoServer、sso-resource、sso-client1、sso-client2 3、访问http://sso-taobao:8083/client1/ 或 http://sso-tmall:8084/client2/

    .NET Core2.0+MVC 用session,cookie实现的sso单点登录

    2. **处理cookie**:为了实现SSO,我们需要创建一个全局的cookie来存储用户的身份信息。在.NET Core中,可以使用CookiePolicy中间件和CookieFeature类来管理cookie。创建cookie时,应设置适当的过期时间,以便在用户...

    C#单点登陆组件源码SSO

    C#中,我们可以利用.NET Framework的安全性和身份验证功能,如Forms Authentication、Windows Authentication等,来实现SSO。 1. **Forms Authentication**:这是ASP.NET中常用的身份验证方法,适用于Web应用程序。...

    Form实现同一服务器下的SSO

    总之,Form实现的SSO通过集中式的认证服务和票据机制,实现了在同一服务器下多应用之间的无缝登录体验。虽然涉及到的步骤和配置较多,但一旦设置好,可以极大地提升用户体验,简化管理。对于开发者来说,理解和掌握...

    java web sso 实现

    Java Web SSO(Single Sign-On)实现主要涉及的是在多个应用系统之间实现用户单点登录的功能,即用户只需要登录一次,就能在多个相互信任的应用系统中自由切换,无需再次进行身份验证。SSO的核心思想是将认证过程...

    spring security oauth2 实现jwt sso

    在本项目中,我们将深入探讨如何利用Spring Security OAuth2和JSON Web Token(JWT)来实现SSO。 一、Spring Security OAuth2 Spring Security 是一个强大的安全框架,提供了一系列用于保护Web应用程序的安全功能...

    Iframe+Cookie实现简单的单点登录

    在这个示例中,我们将通过"Iframe+Cookie"的方式探讨如何实现简单的SSO。 首先,理解Iframe(内联框架)在SSO中的角色。Iframe常用于在不离开主页面的情况下加载其他网页内容。在SSO场景下,Iframe可以用来隐藏地...

    SSO单点登录实现与实现原理

    本文将深入探讨SSO的实现原理,并结合提供的源代码进行详细讲解。 一、SSO基本原理 1. **中央认证服务(CAS)**:SSO的核心是中央认证服务,它负责验证用户的身份。当用户首次尝试访问受保护资源时,会被重定向到...

Global site tag (gtag.js) - Google Analytics