环境准备

环境规格:

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 importadmin

2 from django.urls importpath, include

3 from django.conf.urls importurl

4 from django.contrib.auth.views importLoginView

5

6 #sso

7 from simple_sso.sso_server.server importServer

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 importJsonResponse

from django.contrib.auth.decorators importlogin_required

# Create your views here.

@login_required

deftestClientSSO(request):

json_data = {'name': 'nalanxiao', 'id': 0}

return JsonResponse(json_data)

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

testClientSSO为测试页面

编辑urls.py

from django.urls importinclude

from django.conf.urls importurl

from simple_sso.sso_client.client importClient

from django.conf importsettings

from . importviews

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

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

python ssologin_django-sso单点登陆的实现相关推荐

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

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

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

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

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

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

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

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

  5. 开源sso单点登陆系统推荐

    一.CAS   地址https://www.apereo.org/projects/cas CAS是Central Authentication Service的缩写,中央认证服务,一种独立开放指令协 ...

  6. sso单点登陆实现过程汇总记录

    前言 在早期,项目规模不大的时候,企业中存在的系统不多,通常为1或者2个.每个系统都有自己独立的登陆模块,这样用户进行登陆也不是特别麻烦,分别进行登陆就可以了.但是随着企业规模不断变大,随之而然的系统 ...

  7. 企业内部应用(阿里商旅)集成 钉钉 与 微信 实现SSO单点登陆

    1.钉钉准备工作 (1) 创建应用 https://open-dev.dingtalk.com/fe/app#/corp/app (2)获取应用凭证 记录 AgentId AppKey AppSecr ...

  8. 带你快速了解SSO单点登陆

    引入 定义:在多个应用系统中共享登录.撤销状态 这里说的多个应用系统其实指的不同的域 同源(同一个域):域名.端口.协议均相同 举例:淘宝(www.taobao.com)和天猫(www.tmall.c ...

  9. 简单入门SSO单点登陆——认证服务

    SSO在我们的应用中非常常见,例如我们在OA系统登录了,我们就可以直接进入采购系统,不需要再登录了,这样使我们非常方便.现在网上也有很多实现方法,于是乎我也想写一个看看.我主要用到的是cookie的机 ...

  10. Spring Security、oauth2、单点登陆SSO的关系

    文章目录 概述 1. 什么是Spring Security 1.1 配置示例 1.2 spring security 基本原理 1.2 Spring Security存在的问题 2. 什么是oauth ...

最新文章

  1. 如何在Ruby中获得随机数
  2. mysql的status状态说明
  3. web项目_学生证管理系统
  4. PAT甲级1097 Deduplication on a Linked List:[C++题解]遍历链表、两个vector
  5. 让图片算好高宽再显示
  6. android 过滤数组中的重复元素,Flutter List数组避免插入重复数据的实现
  7. SpringMVC @Transactional的陷井大坑引发No Session found for current thread
  8. linux mount 日志,mount
  9. 手把手教你如何逐步安装OpenStack
  10. Webstorm的常用快捷键
  11. mysql半同步模式_MySQL 半同步复制模式的实现
  12. tcping下载安装步骤,如何ping端口,tcping详解
  13. 乐谱五线谱排版软件种类与介绍
  14. 台式电脑怎么装win10 win11重装win10系统
  15. ShareX:一款你值得拥有的截图识别工具
  16. hive大数据量实现分页查询,java结合mybatis及多数据源(hive、MySQL)
  17. Oracle 序列使用整理
  18. Proxmox VE技巧
  19. 推荐算法(8)评测指标
  20. Windows redis最新版本5.0.9下载

热门文章

  1. Linux: kill
  2. spark RDD transformation与action函数整理
  3. css3 切换贞动画的效果,仿gif效果
  4. #paragma详解
  5. 笨办法学Python(learn python the hard way)--练习程序39-40
  6. Spring 下 MyBatis 的基本使用
  7. linux服务器MySQL数据从磁盘拷贝以及恢复
  8. java基础 第四章 下(数组)
  9. 接口测试基础——第6篇unittest模块(三)
  10. [Python] Different ways to test multiple flags at once in Python