ด้านบนเป็นการอ่านจากฝั่ง server ซึ่งหมายความว่า PHP รันบน Windows
แต่ถ้าต้องการอ่าน client profile information ขึ้นอยู่กับ authentication ที่ใช้ใน web application
เช่น
basic authentication
$username = $_SERVER['REMOTE_USER'];
SSO system
$ssoToken = $_SERVER['HTTP_X_SSO_TOKEN'];
// Check if the SSO token is present
if ($ssoToken) {
// Make a call to the SSO API to retrieve the user's profile information
$profile = getProfileFromSSO($ssoToken);
// Extract the username from the user's profile
$username = $profile['username'];
echo "The client username is: " . $username;
} else {
echo "No SSO token found in the request headers.";
}
// เขียนฟังก์ชันติดต่อ SSO API เพื่ออ่าน user's profile information
// แล้วคืนค่ากลับเป็น array ส่วนรายละเอียดการ implement ขึ้นอยู่กับระบบ SSO ที่กำลังใช้
// เช่น การใช้งานร่วมกับ JWT
function getProfileFromSSO($ssoToken) {
$publicKey = getPublicKeyFromSSO();
$jwt = JWT::decode($ssoToken, $publicKey, array('HS256'));
return (array) $jwt;
}
function getPublicKeyFromSSO() {
// ดึงค่า public key ที่ใช้ร่วมกับ JWT tokens
// แล้วคืนค่า
}
OAuth system
// OAuth access token มี request เข้ามาหรือไม่
if (isset($_GET['access_token'])) {
$accessToken = $_GET['access_token'];
// OAuth API
$profile = getProfileFromOAuth($accessToken);
// อ่าน username จาก user's profile
$username = $profile['username'];
echo "The client username is: " . $username;
} else {
echo "No OAuth access token found in the request.";
}
function getProfileFromOAuth($accessToken) {
// เรียก OAuth API เพื่อดึง user's profile information
// แล้วคืนค่า
}
หรือ ง่ายๆ จาก
web browser's header
if (isset($_SERVER['HTTP_CLIENT_USERNAME'])) {
$username = $_SERVER['HTTP_CLIENT_USERNAME'];
echo "The client username is: " . $username;
} else {
echo "No client username found in the request headers.";
}