node.js - 如何在 Node.js 中检查 CAS 身份验证?
问题描述
我必须开发一个应用程序,只有在用户登录后才能访问该页面。我们的组织使用 CAS 来保护页面,但我不确定如何检查(我正在使用 Node.js)该人是否确实已签名在。
我是 CAS 的新手,并试图了解如何进行。我知道用户登录后会在浏览器中收到一个授予票证的票证 (TGT) cookie,并且 CAS 会以某种方式为单个页面创建一个服务票证 (ST)。
我如何知道用户是否已通过身份验证?是否有特定的方法来验证用户是否拥有 TGT?我检查ST吗?如果我没有检测到任何票证,我如何将它们定向到我们系统的 CAS 实例?
感谢您的任何帮助。
解决方案
我是 CAS 的新手,并试图了解如何进行。我知道用户登录后会在浏览器中收到一个授予票证的票证 (TGT) cookie,并且 CAS 会以某种方式为单个页面创建一个服务票证 (ST)。
到现在为止还挺好。
我如何知道用户是否已通过身份验证?是否有特定的方法来验证用户是否拥有 TGT?我检查ST吗?如果我没有检测到任何票证,我如何将它们定向到我们系统的 CAS 实例?
如果您的应用程序没有会话,则需要使用充当应用程序回调的服务参数将用户重定向到 CAS 登录端点。用户登录后,CAS 将使用服务票证重定向回服务参数。然后您需要获取票证,要求 CAS 服务器验证票证以换取用户信息/个人资料。
这种交互的大部分通常使用 CAS 客户端库来处理,您可以配置这些库来为您处理验证和重定向。如果您四处搜索,您可能会找到与 node.js 配合良好的良好 CAS 客户端。这可能是一个很好的起点:https ://github.com/casinthecloud/nodejs-cas-client-demo
推荐阅读
- java - 尝试使用 java 8 从系统根目录递归列出所有文件时出现“Config.Msi”目录问题
- javascript - 如果内部导出,在定义之前调用函数是可以的
- c++ - 我们应该在 for 循环之前声明我们正在使用的条件吗?
- expression - 从 qlikview 表达式中的日期开始的天数
- javascript - 事件侦听器在上下文中工作,但不是在另一个上下文中工作 - 代码相同,并且没有观察到错误。可能的原因?
- excel - 错误“无法获取 WorksheetFunction 类的 VLookup 属性”背后的原因可能是什么?
- java - 尝试将用户签名到服务器主机时如何解决“字符串无法转换为 json 对象”错误?
- influxdb - 2200万点的慢查询
- java - 如何在同一台机器上运行数百个 Kafka 消费者?
- lucene - Hibernate Search 手动索引抛出“org.hibernate.TransientObjectException:实例未与此会话关联”