Desire2Learn Valence API非交互式身份验证

Desire2Learn Valence API非交互式身份验证,desire2learn,Desire2learn,在Desire2Learn Valence API中,是否存在用于服务器应用程序的非交互式身份验证流?Valence文档似乎假定任何身份验证应用程序都将是一个交互式客户端进程。这与此处的问题有些关联: Valence API确实要求已执行交互式身份验证步骤,但对于非交互式应用程序,这可以在“安装时”完成。这一过程的结果是可以“长期”使用的钥匙 对于某些版本和service pack级别,这是30天,但可以设置为“不过期”。“Not expire”是预期的默认值,但是,如果您的实例仍将其设置为3

在Desire2Learn Valence API中,是否存在用于服务器应用程序的非交互式身份验证流?Valence文档似乎假定任何身份验证应用程序都将是一个交互式客户端进程。

这与此处的问题有些关联:

Valence API确实要求已执行交互式身份验证步骤,但对于非交互式应用程序,这可以在“安装时”完成。这一过程的结果是可以“长期”使用的钥匙


对于某些版本和service pack级别,这是30天,但可以设置为“不过期”。“Not expire”是预期的默认值,但是,如果您的实例仍将其设置为30天,则您可以发出支持请求以更改它

我们实际上是通过非交互方式登录到该站点来实现这一点的。 如果尝试此路径,请确保获取d2lSecureSessionVal、d2lSessionVal和登录cookie,并将它们添加到后续请求中

请求1: 1>发布http{s}://elearning.test.masked.edu/d2l/lp/auth/login/login.d2l 1>内容类型:应用程序/x-www-form-urlencoded 用户名={您的用户名}&密码={您的密码}

答复1:

1 < Set-Cookie: LoginKey=; expires=Sat, 01-Jan-2000 05:00:00 GMT; path=/
1 < Set-Cookie: d2lSecureSessionVal=masked; path=/; HttpOnly  <-- grab this
1 < Set-Cookie: Login=true; path=/   <-- grab this
1 < Set-Cookie: d2lSessionVal=masked; path=/   <-- grab this
11
然后,我将它们放入一个PHP类中,我可以重用它来建立连接。所以在我的代码中,我可以调用

$authcontext = d2l::connect();

它真的很有魅力

一次性使用效果很好。然而,应用程序使用cookie和URL有点危险。D2L可能会改变cookies策略,因为它不是受控界面的一部分,如果一方更改其登录顺序或技术(Shib等),您将看到不同的页面,这可能有点风险。我们一直在做这件事,因为瓦伦斯是包括在D2L没有一个单一的问题。如果您选择对令牌进行硬编码,那么当令牌过期时(似乎每次升级后都会发生这种情况),您将大吃一惊。
$authcontext = d2l::connect();