django_openstack_auth源码分析与集成
来源:互联网 发布:用手充电软件下载 编辑:程序博客网 时间:2024/05/20 19:15
前言
最近做一个比较简单的WEB应用,展示一些openstack简单的内容,认证总是要集成的,看了下django_openstack_auth组件,它本身是可以作为django应用的认证后端的,于是打算把它集成进来。
集成
翻了官方文档,首先做一些配置
安装比较简单:
Run pip install django_openstack_auth.
Add openstack_auth to settings.INSTALLED_APPS.
Add ‘openstack_auth.backend.KeystoneBackend’ to your settings.AUTHENTICATION_BACKENDS, e.g.:
AUTHENTICATION_BACKENDS = (‘openstack_auth.backend.KeystoneBackend’,)
Configure your API endpoint(s) in settings.py:
OPENSTACK_KEYSTONE_URL = “http://example.com:5000/v3”
Include ‘openstack_auth.urls’ somewhere in your urls.py file.
Use it as you would any other Django auth backend.
这个步骤很简单,主要是页面应该如何集成进去呢?
看openstack_auth源码
urls.py
url(r"^login/$", "login", name='login'), url(r"^logout/$", 'logout', name='logout'),
可以看到有URL地址,进去views.py看login方法,
大致流程如下:
可见要自行准备auth/login.html模板,于是写了个模板,但是里面FORM怎么写呢,一开始自己写了FORM,写了username等属性,按照post到auth/login去登录,一直失败。
仔细思考,感觉这样流程也是不对的,跟form根本没关联,流程有问题。于是看了TEST中的例子,恍然大悟
在login.html里写如下FORM即可
<form method="post" action="/auth/login/"> {% csrf_token %} {{ form.as_p }}<button class="btn" type="submit">登录</button><input type="hidden" name="next" value="{{ next }}" />
之后发现果然可以登录了~~
登录检验
对于未登录的调用,应跳转到登录界面去,如下去做
@login_required(login_url="/auth/login/")
在函数名称上都加上这个即可,如果没有登录,则会自动跳转。
setting里还加了
if not WEBROOT.endswith('/'):WEBROOT += '/'if LOGIN_URL is None:LOGIN_URL = WEBROOT + 'auth/login/'if LOGOUT_URL is None:LOGOUT_URL = WEBROOT + 'auth/logout/'if LOGIN_REDIRECT_URL is None:LOGIN_REDIRECT_URL = WEBROOT
至此,登录问题基本搞定~
参考
http://docs.openstack.org/developer/django_openstack_auth/installation.html#installation
- django_openstack_auth源码分析与集成
- Spring集成Mybatis配置与源码分析
- 4.dubbo源码分析 之 与Spring 集成
- xposed源码编译与集成
- Velocity源码分析以及Spring集成
- demo/misc/map(集成地图)源码分析
- Spring-boot 集成 kakfa 源码分析
- dwr与spring集成的错误分析
- Spark Streaming 与 Kafka 集成分析
- jeecms 2012 源码分析(三)------ Spring + FreeMarker的集成。
- Dubbo源码分析之一:spring集成之xml
- Dubbo源码分析之二:spring集成之注解
- Blockly在Android中的集成及源码分析
- Samba源码分析与移植
- CppUnitLite源码分析与总结
- cc150 分析与解答源码
- sift算法与源码分析
- Handler与Looper源码分析
- 强制停止monkey执行
- RabbitMQ 集群与高可用配置
- hdu--4417Super Mario+划分树
- JAVA String--16进制 转换
- 如何把maven项目转成web项目
- django_openstack_auth源码分析与集成
- 面试常见问题及回答 面试技巧及注意事项
- linux随笔-2
- iOS开发之判断手机号
- git的一些命令
- Android之Content Provider学习使用
- Linux配置DHCP服务器
- CreatePipe匿名管道通信
- 4D打印:改变未来商业生态——互动出版网