向Django认证Unifi WiFi客人。
django-unifi-portal的Python项目详细描述
![预览](logo django unifi.png)
django unifi portal是一个基于两种身份验证/注册机制的自定义门户:
-**
这是一款功能强大、可重复使用的django应用程序,可与Unifi AP控制器软件(第4版和第5版)进行交互。
Unifi®AP是部署高性能无线网络的理想接入点。[此处](https://www.ubnt.com/unifi/unifi-ap/)您可以找到更多详细信息。
![预览](screen/login_reg.png)
工作
--
当来宾尝试在启用来宾策略的情况下连接到无线网络时,http请求将重定向到django门户服务器。
提交表单或验证facebook登录时,django验证用户,然后使用unifi授权来宾mac地址的api。
quick start
----
-在python环境中设置django unifi portal应用程序:
$pip安装django unifi portal
-迁移django unifi portal应用程序以创建用户型号:
$migrate django_unifi_portal
-将"django_unifi_portal"添加到已安装的应用程序:
``python
installed_apps=(
…,
'django_unifi portal',
)
`````
-复制此配置并将其粘贴到名为unifi_settings.py的文件上。py:
`` python
来自django.core.urlsolvers导入reverse_lazy
unifi installed_apps=[
material apps
"material"、
"oauth2_provider"、
"social_django",
"rest_framework_social_oauth2",
"django_unifi_门户",
]
unifi_login_redirect_url=reverse_lazy('index')
'material.frontend.context_processors.modules',
"social_django.context_processors.backends",
"social_django.context_processors.login_redirect",
"django_unifi_portal.context_processor.unifi_context"
]
unifi模板内置项="material.templatetags.material_form"
其他身份验证提供商(如google、openid等)
#facebook oauth2
"社交核心.backends.facebook.facebook appoauth2",
"社交核心.backends.facebook.facebook oauth2",
"django
"django.contrib.auth.backends.modelbackend",
unifi social身份验证管道=(
"social_core.pipeline.social_auth.social_details"、
"social_core.pipeline.social_auth.social_uid"、
"social_core.pipeline.social_auth.auth_allowed"、
"django_unifi_portal.pipeline.manage_auth_already_associated",
"社交核心.pipeline.social身份验证.social用户",
"社交核心.pipeline.user.get_用户名",
"django_unifi_portal.pipeline.require_email",
"社交核心.pipeline.mail.mail_validation",
"社交核心.pipeline.user.create_user",
"社交核心.管道.社交身份验证.关联用户",
"社交核心.管道.调试.调试",
"社交核心.管道.社交身份验证.加载额外数据",
"社交核心.管道.用户.用户详细信息",
"django统一门户.管道.用户详细信息",
'django_unifi_portal.pipeline.save_profile',
'social_core.pipeline.debug.debug',
)
#定义social_auth_facebook_scope以从facebook获取额外权限。
默认情况下不发送电子邮件,若要获取此权限,必须请求电子邮件权限:
social_auth_facebook_scope=['email']
social_auth_facebook profile_extra_params={
"字段":"id,name,关于,电子邮件,生日,性别,家乡,语言'
}
unifi-server=<;您的unifi-server ip>;
unifi-port=<;您的unifi-server-port>;#默认值为8443
unifi_version='v4'
unifi站点ID='default'
静态文件夹下到徽标png>;'
unifi-user="<;您的unifi用户名"
unifi-password="<;您的unifi密码"
unifi-timeout\u minutes=<;minutes>;#例如,8小时是480小时
facebook配置
社交认证facebook key="<;您的facebook key>;"
社交认证facebook secret="<;您的facebook api secret>;"
```
- Then add this configuration to your settings.py:
```python
#################################################
# UNIFI CONFIGURATION #
#################################################
from unifi_settings 导入*
installed_apps+=unifi_installed_apps
login_url=unifi login_url
login_redirect_url=unifi login_redirect_url
templates[0]['options']['context_processors']+=unifi template_context_processors
表单模板
请尝试:
从django.template.base import add掼u to掼u内置模板的快捷方式
从django.template.base import add掼u to掼u内置模板(unifi掼u template掼u内置模板)添加掼u to掼u内置模板
除了importerror之外:
"
"django 1.9.
unifi模板内置,
]
authentication_backends=unifi_authentication_backends
social_auth_pipeline=unifi social_auth_pipeline
```
-您需要将视图映射到url.py中的url文件:
`` python
url(r',include('django_unifi_portal.url'),
```
-如果需要,可以使用基本unifiuser模型,或者扩展它来定义这样一个简单的模型:
```python
from unifiu portal.models import unifiuser
类customunifiuser(unifiuser):
nick=models.charfield(max_length=100)
——
最后,设置unifi以指向django门户al server的IP。您可以通过在数据库中插入虚拟帐户来测试身份验证。
![配置](screen/unifi-dash.png)
您可以修改默认的apache2 index.html文件以重定向到适当的路径,或者创建指向guest/s/default/index.php文件的符号链接。
\contribution
contributions welcome;请提交针对主分支的所有请求。如果pull请求包含python补丁或特性,则应包含相关的单元测试。
谢谢!
有关详细信息,请参阅许可证文件。
\disclaimer
ubiquiti不支持此代码。它只是作为一个基本的、运行正常的外部门户的示例提供的。
django unifi portal是一个基于两种身份验证/注册机制的自定义门户:
-**
这是一款功能强大、可重复使用的django应用程序,可与Unifi AP控制器软件(第4版和第5版)进行交互。
Unifi®AP是部署高性能无线网络的理想接入点。[此处](https://www.ubnt.com/unifi/unifi-ap/)您可以找到更多详细信息。
![预览](screen/login_reg.png)
工作
--
当来宾尝试在启用来宾策略的情况下连接到无线网络时,http请求将重定向到django门户服务器。
提交表单或验证facebook登录时,django验证用户,然后使用unifi授权来宾mac地址的api。
quick start
----
-在python环境中设置django unifi portal应用程序:
$pip安装django unifi portal
-迁移django unifi portal应用程序以创建用户型号:
$migrate django_unifi_portal
-将"django_unifi_portal"添加到已安装的应用程序:
``python
installed_apps=(
…,
'django_unifi portal',
)
`````
-复制此配置并将其粘贴到名为unifi_settings.py的文件上。py:
`` python
来自django.core.urlsolvers导入reverse_lazy
unifi installed_apps=[
material apps
"material"、
"oauth2_provider"、
"social_django",
"rest_framework_social_oauth2",
"django_unifi_门户",
]
"social_django.context_processors.backends",
"social_django.context_processors.login_redirect",
"django_unifi_portal.context_processor.unifi_context"
]
unifi模板内置项="material.templatetags.material_form"
其他身份验证提供商(如google、openid等)
#facebook oauth2
"社交核心.backends.facebook.facebook appoauth2",
"社交核心.backends.facebook.facebook oauth2",
"django
"django.contrib.auth.backends.modelbackend",
unifi social身份验证管道=(
"social_core.pipeline.social_auth.social_details"、
"social_core.pipeline.social_auth.social_uid"、
"social_core.pipeline.social_auth.auth_allowed"、
"django_unifi_portal.pipeline.manage_auth_already_associated",
"社交核心.pipeline.social身份验证.social用户",
"社交核心.pipeline.user.get_用户名",
"django_unifi_portal.pipeline.require_email",
"社交核心.pipeline.mail.mail_validation",
"社交核心.pipeline.user.create_user",
"社交核心.管道.社交身份验证.关联用户",
"社交核心.管道.调试.调试",
"社交核心.管道.社交身份验证.加载额外数据",
"社交核心.管道.用户.用户详细信息",
"django统一门户.管道.用户详细信息",
'django_unifi_portal.pipeline.save_profile',
'social_core.pipeline.debug.debug',
)
#定义social_auth_facebook_scope以从facebook获取额外权限。
默认情况下不发送电子邮件,若要获取此权限,必须请求电子邮件权限:
social_auth_facebook_scope=['email']
social_auth_facebook profile_extra_params={
"字段":"id,name,关于,电子邮件,生日,性别,家乡,语言'
}
unifi-server=<;您的unifi-server ip>;
unifi-port=<;您的unifi-server-port>;#默认值为8443
unifi_version='v4'
unifi站点ID='default'
静态文件夹下到徽标png>;'
unifi-user="<;您的unifi用户名"
unifi-password="<;您的unifi密码"
unifi-timeout\u minutes=<;minutes>;#例如,8小时是480小时
facebook配置
社交认证facebook key="<;您的facebook key>;"
社交认证facebook secret="<;您的facebook api secret>;"
```
- Then add this configuration to your settings.py:
```python
#################################################
# UNIFI CONFIGURATION #
#################################################
from unifi_settings 导入*
installed_apps+=unifi_installed_apps
login_url=unifi login_url
login_redirect_url=unifi login_redirect_url
templates[0]['options']['context_processors']+=unifi template_context_processors
表单模板
请尝试:
从django.template.base import add掼u to掼u内置模板的快捷方式
从django.template.base import add掼u to掼u内置模板(unifi掼u template掼u内置模板)添加掼u to掼u内置模板
除了importerror之外:
"
"django 1.9.
unifi模板内置,
]
authentication_backends=unifi_authentication_backends
social_auth_pipeline=unifi social_auth_pipeline
```
-您需要将视图映射到url.py中的url文件:
`` python
url(r',include('django_unifi_portal.url'),
```
-如果需要,可以使用基本unifiuser模型,或者扩展它来定义这样一个简单的模型:
```python
from unifiu portal.models import unifiuser
类customunifiuser(unifiuser):
nick=models.charfield(max_length=100)
最后,设置unifi以指向django门户al server的IP。您可以通过在数据库中插入虚拟帐户来测试身份验证。
![配置](screen/unifi-dash.png)
您可以修改默认的apache2 index.html文件以重定向到适当的路径,或者创建指向guest/s/default/index.php文件的符号链接。
\contribution
contributions welcome;请提交针对主分支的所有请求。如果pull请求包含python补丁或特性,则应包含相关的单元测试。
谢谢!
有关详细信息,请参阅许可证文件。
\disclaimer
ubiquiti不支持此代码。它只是作为一个基本的、运行正常的外部门户的示例提供的。