这是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:要登录的用户的电子邮件,它用作用户名
  • Cuuth.lt;您的自定义参数& gt;在参数SytoVIEW 中应该与您的配置相匹配的不同参数

创建数据库条目:

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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JAVAutil。整数java的扫描器键盘输入   java通知运行后立即崩溃   java如何在一个只能由类修改而不能由其实例修改的类中生成静态变量?   数据库Java字段猜测   返回值周围的java括号为什么?   java Android更新通讯录中的联系人   一个消费者正在读取数据   java是否可以通过编程方式为蓝牙配对设置pin?   java Spring引导和buildResponseEntity()   java为什么序列化可以在没有实现可序列化的情况下工作   Java同步无助于相互排斥   twitter Java Twitter4J未在推文下显示源标签   为什么Javasocket不支持中断处理?