如何在Node.js中检查CAS认证?

3
我需要开发一个应用程序,只有已登录的用户才能访问页面。我们的组织使用CAS来保护页面,但我不确定如何检查(我正在使用Node.js),以确保用户已经登录。
我对CAS很陌生,正在努力理解如何进行下一步操作。我知道用户在登录后会在浏览器中收到一个票据授权票证(TGT)cookie,并且一些方式下CAS将为每个独立页面创建一个服务票证(ST)。
我如何知道用户是否已通过身份验证?有没有特定的方法来验证用户是否拥有TGT?我是检查ST吗?如果我没有检测到任何票证,我如何将他们引导到我们系统的CAS实例?
感谢您所有的帮助。
1个回答

3
我刚接触CAS,正在尝试了解如何进行操作。我知道用户登录后会在浏览器中收到一个票证授权票据(TGT)cookie,并且一些方式下CAS将为每个页面创建一个服务票证(ST)。
到目前为止都很好。
我要如何知道用户是否已经通过身份验证?有没有特定的方法来验证用户是否拥有TGT?我需要检查ST吗?如果我没有检测到任何票证,我该如何将他们重定向到我们系统中的CAS实例?
如果您的应用程序没有会话,则需要使用服务参数将用户重定向到CAS登录终端点,并用作回调到您的应用程序。一旦用户登录,CAS将使用服务票证将其重定向回服务参数。然后,您需要获取票证并要求CAS服务器验证票证以交换用户信息/配置文件。

大部分交互通常使用CAS客户端库进行处理,您需要配置它们来处理验证和重定向。如果您搜索一下,可能会找到适用于node.js的好的CAS客户端。这可能是一个不错的起点:https://github.com/casinthecloud/nodejs-cas-client-demo


CAS票据授权票据由CAS生成,并通常在CASTGC cookie的响应中返回,该cookie由您的浏览器存储。应用程序不需要知道它,当浏览器向CAS服务器发出请求以验证会话是否存在时,它会自动发送。只要cookie表示有效的CAS会话,CAS将返回服务票据而无需提示用户凭据,因为用户被视为已经通过身份验证。 - Suncat2000

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接