环境准备

  环境规格:

    python3.5

    django2.0

    django-simple-sso-0.14

  环境安装:

    pip install django-simple-sso-0.14

  环境说明:

    opstest01为django应用,作为服务端使用,端口8001

    testsso为django应用,作为客户端使用,端口8000

单点概念

  参考:https://www.cnblogs.com/morethink/p/8047711.html

服务端实现(opstest01)

  配置修改:

    修改setting.py文件

    INSTALLED_APPS中添加'simple_sso.sso_server',

    

    执行python manage.py makemigrations, python manage.py migrate

    添加表数据

    sso_server_consumer表中添加一行数据指定私钥公钥,用于客服端的配置使用

    

    编辑urls.py

    暴露两个访问地址

 1 from django.contrib import admin
2 from django.urls import path, include
3 from django.conf.urls import url
4 from django.contrib.auth.views import LoginView
5
6 #sso
7 from simple_sso.sso_server.server import Server
8 test_server = Server()
9
10 urlpatterns = [
11 path('admin/', admin.site.urls),
12 url('^server/', include(test_server.get_urls())),
13 url(r'^login/$', LoginView.as_view(template_name='admin/login.html'), name="login"),
14 ]

    server为服务端认证,获取token,验证地址;login为django系统自带登陆地址作测试用(测试用户通过python manage.py createsuperuser创建)

    到处服务端创建完成!

客户端实现

  创建django项目testsso做为客户端测试使用

  编辑setting.py文件

    INSTALLED_APPS中添加'simple_sso.sso_client',

    结尾处添加sso相关参数

    #sso

    SSO_SERVER = 'http://127.0.0.1:8001/server/'

    SSO_PUBLIC_KEY = 'public'
    SSO_PRIVATE_KEY = 'private'
    LOGIN_URL = '/testsso/client/'    #login_required未登陆跳转地址

  添加views.py

from django.http import JsonResponse
from django.contrib.auth.decorators import login_required # Create your views here.
@login_required
def testClientSSO(request):
json_data = {'name': 'nalanxiao', 'id': 0}
return JsonResponse(json_data)

    login_require为django系统装饰器,判断登陆状态

    testClientSSO为测试页面

  编辑urls.py

from django.urls import include
from django.conf.urls import url
from simple_sso.sso_client.client import Client
from django.conf import settings
from . import views test_client = Client(settings.SSO_SERVER, settings.SSO_PUBLIC_KEY, settings.SSO_PRIVATE_KEY) urlpatterns = [
url(r'^client/', include(test_client.get_urls())),
url(r'test/', views.testClientSSO, name='testSSO'),
]

    添加client,test两个访问地址

测试

  访问http://127.0.0.1/8000/client/test/页面调整到8001/login/页面

  

  登陆完成后跳转回test页面:

  

  cookie中增加sessionid

gihub:https://github.com/Roherolxh/django-sso   

觉得有帮助就点亮小星星吧

django-sso单点登陆的实现的更多相关文章

  1. IM开发基础知识补课:正确理解前置HTTP SSO单点登陆接口的原理

    1.前言 一个安全的信息系统,合法身份检查是必须环节.尤其IM这种以“人”为中心的社交体系,身份认证更是必不可少. 一些PC时代小型IM系统中,身份认证可能直接做到长连接中(也就是整个IM系统都是以长 ...

  2. session问题总既然(深入理解)&Token问题理解&sso单点登陆理解实现

    一.Session使http协议成为有状态协议(浏览器cookie本地这个session,服务器端也有这个session) 1.ajax前端登陆无法保存session,造成无法维持登陆状态(http本 ...

  3. Lind.DDD.SSO单点登陆组件的使用(原创)

    回到目录 一般sso的说明 在Lind.DDD框架里,有对单点登陆的集成,原理就是各个网站去sso网站统一登陆授权,之后在sso网站将登陆的token进行存储,存储方式随你(cache,redis,m ...

  4. 京东SSO单点登陆实现分析

    京东的sso流程: 初始访问状态: cookies: http请求:   1.在首页点击登陆,跳转至passport.360buy.com,给予验证cookie alc(可以试试在提交登陆信息前删除该 ...

  5. Java电商项目-8.实现SSO单点登陆

    目录 创建ashop-sso-web单点登陆系统 用户名唯一性验证 用户注册 用户登陆 获得用户登陆状态 实现安全退出 项目的Github地址 创建ashop-sso-web单点登陆系统 先创建好模块 ...

  6. springSession框架来实现sso单点登陆

    介绍一下springsession这个框架,其实springsession框架默认的是使用redis来实现单点登陆的,但是不支持redis集群,这个框架的特点是无侵入的实现单点登陆,就是说我们之前获取 ...

  7. 京东商城跨域设置Cookie实现SSO单点登陆过程

    可以先看下这边文章:http://blog.chinaunix.net/uid-25508399-id-3431705.html   1.点击首页的登陆按钮跳转到京东的登陆中心https://pass ...

  8. SSO单点登陆

    一句话,就是能让各个不同的域名带回相同的认证信息即可.实现方法,就是把其中一个登陆后,把认证的信息分别保存在不同域名下的 cookie,当在验证是否登陆时,验证 cookie,如果是子域名,这个则直接 ...

  9. SSO单点登录、跨域重定向、跨域设置Cookie、京东单点登录实例分析

    最近在研究SSO单点登录技术,其中有一种就是通过js的跨域设置cookie来达到单点登录目的的,下面就已京东商城为例来解释下跨域设置cookie的过程 涉及的关键知识点: 1.jquery ajax跨 ...

  10. ASP.NET在不同情况下实现单点登陆(SSO)的方法

    第一种:同主域但不同子域之间实现单点登陆 Form验证其实是基于身份cookie的验证.客户登陆后,生成一个包含用户身份信息(包含一个ticket)的cookie,这个cookie的名字就是在web. ...

随机推荐

  1. 浅谈Oracle数据库分区表

    Oracle数据库分区是作为Oracle数据库性能优化的一种重要的手段和方法,之前,只听过分区的大名,却总未用过,最近简单学习了一下,总结如下,不对之处,还希望朋友们多多指点,交流! 1.表空间及分区 ...

  2. 【区间更新区间求和】HDU 1698 Just a Hook

    acm.hdu.edu.cn/showproblem.php?pid=1698 [AC] #include<cstdio> ; #define lson (i<<1) #def ...

  3. Wiley出版 SQL Server 2005宝典

    原文发布时间为:2008-07-30 -- 来源于本人的百度文章 [由搬家工具导入] Wiley出版 SQL Server 2005宝典 迅雷专用高速下载    thunder://QUFmdHA6L ...

  4. Xcode打包应用为ipa

    Xcode教程 Xcode4发布测试 打包Archive操作是本文要介绍的内容,发布测试的最后一步打包(Archive),Xcode4帮助文档有比较详细介绍,但是居然是错的,这里说明一下. 1.设置& ...

  5. PXE+Kickstart 自动安装CentOS系统

    PXE (preboot execcute environment) 依赖服务 dhcp tftp file server (yum repository) 准备TFTP服务器  如何配置TFTP服务 ...

  6. qu de hanzi 首字母

    Function hztopy(hzpy As String) As StringDim hzstring As String, pystring As StringDim hzpysum As In ...

  7. hdu1853/ hdu 3488 有向图,取k个圈覆盖所有点一次//费用流

    哎╮(╯▽╰)╭,这是费用流基础题型,拆点,建二分图,跑最小费用最大流即可.若最大流为n,则说明是最大匹配为n,所有点都参与,每个点的入度和出度又是1,所以就是环. 弱菜还需努力! #include& ...

  8. 测试开发系列之Python开发mock接口(二)

    上一篇咱们已经把开发前的环境准备好了,还需要再做一点准备,你的账户信息是存在哪的呢,当然是存在数据库里的,咱们在去支付,扣钱的时候,肯定是从数据库里面操作的,去更新账户表里面的数据,所以咱们先要把数据 ...

  9. android studio settings

    安装 Android Studio下载地址   http://www.android-studio.org/ 1.配置JDK 2.安装 Android Studio (带SDK) 3.配置 一.Set ...

  10. MongoDB下配置用户权限

    MongoDB默认设置为无权限訪问限制 注:研究成果基于Windows平台 在部署mongodb成功后.进入控制台: 输入命令:mongod  use admin,你会发现该DB下包括了一个syste ...