2

我正在集成第 3 方应用程序。它将通过 iframe 嵌入到我的网站中。实例化 iframe 时,用户名和唯一 id(sessionid) 会以这种格式发送到第三方应用程序:

http://www.thirdpartyapp.com?username=9999999&uuid=appname_11111_d3d379ab97c23930-154C9639-1CC4-6169-286F5EB34A37B3C3

一旦站点上的用户尝试使用 iframe 中的任何功能,第 3 方应用程序就会将其发送回sessionid服务器,以验证会话是否已登录。

如果用户已登录,则应用程序将会话变量设置为Session.Auth.Authenticatedtrue。

我可以通过使用来实现这CFID一点CFTOKEN

http://www.mysite.com/checkauth/index.cfm?CFID=2223344&CFTOKEN=40487e5933d11e75-F94396AF-1CC4-6169-28200888416FFC

第三方应用程序以以下格式发送请求:

http://www.mysite.com/checkauth/index.cfm?uuid=appname_11111_d3d379ab97c23930-154C9639-1CC4-6169-286F5EB34A37B3C3

基本上与我的网站发出请求的格式相同。有什么方法可以使用 来检查经过身份验证的会话session.sessionid

4

1 回答 1

1

“有没有办法使用 Session.sessionid 检查经过身份验证的会话?”

似乎有可能。ColdFusionsessionid由三部分组成:

       appName_CFIDE_CFTOKEN

在您的情况下,第三方应用程序发送的请求的 url 参数的格式与以下内容相同session.sessionId

       appname_11111_d3d379ab97c23930-154C9639-1CC4-6169-286F5EB34A37B3C3

现在,如果您在“设置”部分下的 CF Admin 中启用“为 cftoken 使用 UUID”,您将获得如下所示的会话 ID:

       PLANTOMATIC_11201_1f8a073a0ba85bf5-2F7356F3-BE59-A0B4-F3E493BD794062C6

因此,您需要做的是在 CF Admin 中应用设置“将 UUID 用于 cftoken”。然后您可以向第三方发送请求,如下所示:

       http://www.thirdpartyapp.com?username=9999999&uuid=#session.sessionid#

它将返回参数“uuid”。之后,您可以检查是否相等并采取必要的步骤。

于 2013-03-29T21:11:49.720 回答