CAS

第三方应用客户端集成CAS Demo演示程序

PHP代码: https://github.com/SmartSchoolAI/SchoolDataCenter/tree/main/htdocs/api/cas/client 流程说明:

第三方客户端的示例地址: $CAS_CLIENT = "http://localhost:8888/api/cas/client";

第三方客户端, 用户未登录的时候, 需要跳转到以下地址 $CAS_REDIRECT = "https://demoapi.dandian.net/cas?service=".$CAS_CLIENT;

如果用户没有登录CAS服务器, 则会弹出登录界面 如果用户已经登录, 则会自动跳转到回调地址, 并且会自动增加一个ticket参数

第三方客户端的程序在拿到ticket参数以后, 再加上第三方客户端的地址, 进行API接口调用来获取用户信息.

访问路径:   $URL = $CAS_VALIDATE."?service=".$CAS_CLIENT."&ticket=".$ticket;

返回的用户信息分为两种类型, 学生和教职工.

教职工主要字段:
    $userData               = [];
    $userData['id']         = 用户唯一ID; //这个值不是用户名, 这个值有可能跟学生的ID值重复
    $userData['USER_ID']    = 用户名;
    $userData['USER_NAME']  = 用户姓名;
    $userData['EMAIL']      = 电子邮件;
    $userData['DEPT_ID']    = 部门ID;
    $userData['DEPT_NAME']  = 部门名称;
    $userData['PRIV_NAME']  = 角色名称;
    $userData['USER_PRIV']  = 角色ID;
    $userData['avatar']     = 头像路径;
    $userData['username']   = 用户名;
    $userData['email']      = 电子邮件;
    $userData['role']       = 角色ID;
    $userData['type']       = "User"; //此值表示是教职工
    $RS['userData']         = $userData;
    $RS['id']               = 用户唯一ID;
    $RS直接返回为JSON结构

学生主要字段:
    $userData               = [];
    $userData['id']         = 学生唯一ID; //这个值不是用户名, 这个值有可能跟教职工的ID值重复
    $userData['USER_ID']    = 学号;
    $userData['USER_NAME']  = 姓名;
    $userData['学号']       = 学号;
    $userData['姓名']       = 姓名;
    $userData['班级']       = 班级;
    $userData['专业']       = 专业;
    $userData['系部']       = 系部;
    $userData['PRIV_NAME']  = 角色名称;
    $userData['avatar']     = 头像路径;
    $userData['username']   = 学号;
    $userData['role']       = "角色";
    $userData['type']       = "Student"; //此值表示是学生
    $RS['userData']         = $userData;
    $RS['id']               = 学生唯一ID;
    $RS直接返回为JSON结构

API 接口说明

validate.php

作用:把ticket转为用户信息 URL: https://demoapi.dandian.net/api/cas/validate.php 方法:GET 返回:[ 'id' => $id, .... ]; validate.php 源代码: https://github.com/SmartSchoolAI/SchoolDataCenter/blob/main/htdocs/api/cas/validate.php

系统截图
系统截图

最后更新于