更改pacs字段,cas登录

main
yanzai 6 months ago
parent f39e655478
commit 9df8d2fc18

1
.gitignore vendored

@ -0,0 +1 @@
/Laravel/public/admin

@ -0,0 +1,68 @@
<?php
namespace App\Http\Controllers\API\CAS;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Http;
use JWT;
class CasLoginController extends Controller
{
public static $CasUrl='http://192.168.80.53:8085/cas/serviceValidate';
public function login(Request $request){
$ticket = $request->query('ticket');
$url=env('APP_URL').'/casLogin';
$response = Http::get(self::$CasUrl, [
'service' => $url,
'ticket' => $ticket,
]);
if (!$response->successful()) {
return \Yz::JsonError("请求CAS失败");
}
$xml = simplexml_load_string($response->body());
// 注册命名空间
$namespaces = $xml->getNamespaces(true);
// 获取 cas 命名空间下的元素
$cas = $xml->children($namespaces['cas']);
if ($cas === false) {
return \Yz::JsonError("解析CAS响应失败");
}
if (isset($cas->authenticationFailure)) {
return \Yz::JsonError("认证失败");
}
$casResponse = $cas->authenticationSuccess;
if (!$casResponse) {
return \Yz::JsonError("认证失败");
}
$res_user = (string)$casResponse->user;
$user=DB::table('users')->where(['cas_code'=>$res_user,'status'=>1])->first();
if(!!$user){
$jwt= new JWT();
$accessTimeout = $jwt -> GetGetSecretTimeOut();
$refreshTimeout = $jwt -> GetRefreshTokenTimeOut();
$access_token = $jwt->BuildJWT('yz','access',$user->id,$user->group,$accessTimeout);
$refresh_token = $jwt->BuildJWT('yz','refresh',$user->id,'',$refreshTimeout);
DB::table('users')->where(['id'=>$user->id,'status'=>1])->update(['token'=>md5($refresh_token)]);
return redirect(env('APP_URL')."/admin/#/caslogin?access_token=".$access_token."&refresh_token=".$refresh_token);
}else{
echo "登录失败,未授权或者已注销";
}
}
}

@ -49,9 +49,10 @@ class PacsController extends Controller
"app_num",
"medicalHistory",
"diagnosisName",
"idCardNumber"
"idCardNumber",
"reservation_sources as reservation_sources_id",
);
)->where(['is_del'=>0,'is_nullify'=>0]);
if(isset($dateRange)){
if(!is_array($dateRange)) return \Yz::JsonError("日期范围必须是数组");
$entrust_list=$entrust_list->whereBetween('entrust_date',[$dateRange[0],$dateRange[1]]);
@ -69,6 +70,18 @@ class PacsController extends Controller
$entrust_list=$entrust_list->where('idCardNumber',$idCardNumber);
}
$entrust_list=$entrust_list->get();
foreach ($entrust_list as $entrust) {
$entrust->reservation_sources_name=null;
if(!empty($entrust->reservation_sources_id)){
$source=DB::table('s_department_resources')
->where('id',$entrust->reservation_sources_id)
->first();
if(!!$source){
$entrust->reservation_sources_name=$source->department_resources_name;
}
}
}
return \Yz::JsonReturn(true,'查询完成',$entrust_list);
}

@ -34,6 +34,7 @@ Route::get('/yiji', function (Request $request) {
return redirect("http://192.168.80.76/jq_page/appointment.html?".$queryString);
});
//cas 登录
Route::get('/casLogin', 'App\Http\Controllers\API\CAS\CasLoginController@login');

@ -2,5 +2,5 @@ ENV = 'production'
VITE_APP_API = 'http://192.168.80.76/api/'
VITE_APP_FILE = 'http://192.168.80.76/'
VITE_APP_API_66666666 = 'https://yiji.yuluo.online/Laravel/public/api/'
VITE_APP_FILE_666666666 = 'https://yiji.yuluo.online/Laravel/public/'
VITE_APP_API_66666666 = 'http://yiji-qhdzhongyiyuan/api/'
VITE_APP_FILE_66666666 = 'http://yiji-qhdzhongyiyuan/'

@ -40,7 +40,15 @@ const router = createRouter({
meta: {
requiresAuth: false
}
}, {
},
{
path: '/caslogin',
name: 'CasLogin',
component: () => import('../views/CasLogin.vue'),
meta: {
requiresAuth: false
}
},{
path: '/index',
name: 'Index',
component: Index,

@ -77,8 +77,8 @@
let login = () => { //
if (username.value == '' || pwd.value == '') return ElMessage.error('用户名和密码不能为空')
let data = { //
username: username.value,
password: hunxiao(pwd.value),
username: hunxiao(username.value),
password: hunxiao(pwd.value) ,
}
loading.value=true
//

@ -0,0 +1,44 @@
<template>
<view>
cas登录
</view>
</template>
<script setup>
import {
Login
} from "@/api/api.js";
import {
ElMessage
} from 'element-plus'
import {
ref,nextTick,onMounted
} from 'vue'
onMounted(()=>{
let access_token=getParameterByName('access_token')
let refresh_token=getParameterByName('refresh_token')
sessionStorage.setItem('token', access_token);
sessionStorage.setItem('refreshToken', refresh_token);
// sessionStorage.setItem('tk', JSON.stringify(res.data.tk));
var token = sessionStorage.getItem('token');
console.log(token)
if (token!=null && token == access_token) {
window.location.href = "./#/yewu/mainList"
}else{
ElMessage.error("登录失败")
}
})
//url
function getParameterByName(name, url) {
if (!url) url = decodeURIComponent(window.location.href)
name = name.replace(/[\[\]]/g, '\\$&')
var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
results = regex.exec(url)
if (!results) return null
if (!results[2]) return ''
return decodeURIComponent(results[2].replace(/\+/g, ' '))
}
</script>
<style>
</style>
Loading…
Cancel
Save