这是django项目非常可靠的lti提供者。
django-lti-provider-auth的Python项目详细描述
具有身份验证的Django LTI提供程序
这是一个具有身份验证的django项目的高度可配置的lti提供程序。它基于python3、python lti库和django lts。这个库提供了一个django应用程序,它实现了一个完整的lti提供程序,并可用于让用户从另一个学习平台登录到django项目。它处理用户的完整身份验证,然后根据配置重定向到视图。
要求
- python=3.4
- django==1.11
- lti>;=0.9.2
安装
要为Django项目安装LTI提供程序,建议使用PIP:
pip3 install django-lti-provider-auth
现在在“设置”中将LTI_提供程序添加到已安装的_应用程序中。py:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
...
'lti_provider.apps.LTIProviderConfig',
...
)
在settings.py中添加身份验证后端:
AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.ModelBackend',
'lti_provider.backends.LTIAuthBackend',
]
在settings.py中配置LTI提供程序:
LTI_PROVIDER = {
'TITLE': 'name of your project',
'DESCRIPTION': 'short description of your project',
'DEFAULT_VIEW': ('example.views.index', (tuple of parameters or None)),
'FAILED_VIEW': ('example.views.error', (tuple of parameters or None) ),
'PARAMETERS_TO_VIEW': [
(('example_parameter1', ), 'example.views.some_view'),
(('example_parameter2', example_parameter3 ), 'example.views.some_other_view'),
...
],
'HOOK_AFTER_USER_CREATION': 'example.utils.lti_after_user_creation'
}
配置中最重要的部分是Debug TyVIEW、FraveDeVIEW和PosialsToTyVIEW,因为配置了重定向。
- 默认视图:如果LTI请求没有给出任何参数,则此视图将用作重定向的目标。它是一个元组,其中第一个参数是视图的名称,第二个参数是视图的参数元组或无参数元组。
- 失败视图:如果出现错误,则使用此视图。它使用与默认视图相同的元组格式进行配置。 可以通过LTI请求提供定制参数。根据这些参数,可以重定向到特定视图。它应该是一个元组列表。这个元组的第一个元素是参数名的元组。第二个元素是视图的名称,如果LTI请求中存在所有列出的参数名称,则调用该视图。参数的值将传递给视图,同时使用参数的名称作为键将其反转为关键字参数。
创建用户后的可选配置项钩子是一个函数的名称,该函数以django用户对象作为参数。此函数在创建新用户后调用。
LTI提供程序在LTI请求中需要以下参数:
- LTI_消息类型:“基本LTI启动请求”
- LTI_版本:1
- 资源链接:1
- 用户id:唯一的用户id
- lis_person_name_given:要登录的用户的名字
- lis_person_name_family:要登录的用户的姓氏
- lis_person_contact_email_primary:要登录的用户的电子邮件,它用作用户名
创建数据库条目:
python3 manage.py migrate
最后将url配置添加到主url.py:
urlpatterns = [
...
url(r'^lti/', include('lti_provider.urls')),
...
]
用法
首先,您必须在Django项目的管理站点创建LTI使用者。在这里你必须指定一个唯一的密钥和一个秘密令牌。此外,每个消费者都必须链接到一个用户帐户(如管理员)。
现在,您可以在消费者处使用LTI提供程序,您必须提供以下URL作为配置:https:example.com/lti/config.xml