我正在使用一个已经连接到单点登录系统的站点。现在我想添加协议条款页面。这是我正在考虑的流程:
如果我有正在登录的用户的记录,这意味着用户已经看到它,所以我们不再需要显示协议页面。但是,如果表中不存在该记录,我想重定向到具有协议条款的视图,并且用户只有在接受后才能进一步进行登录过程。如果不接受,我们将显示该站点的未签名版本。
由于它是单点登录系统,因此我在自己的终端上创建了一个表来跟踪登录到该站点的用户。这是我应该查找记录的表。
以下是他们登录时创建记录的方式: 这是在我的中间件类中
shib_umnPersonType = shib_meta.get('uPersonType','')
shib_uRole = shib_umnPersonType.strip().split(';')[0]
#raise(shib_meta)
try:
shib_user = ShibUser.objects.get(shib_username=username)
user = shib_user.auth_user
user.backend = "django.contrib.auth.backends.RemoteUserBackend"
except ObjectDoesNotExist:
user = auth.authenticate(remote_user=username)
user.shibuser_set.create(shib_username=username, shib_user_role=shib_uRole)
我在这一点上的想法是我应该在except中打断请求:但我不确定这是否应该这样做。我也不是经验丰富的 django 开发人员。
如果那是这样做的方法,那么我想我应该从该位置调用带有表单的视图,然后检查响应...?