Thanks for the advice, I am trying those scripts, but they are not working, 
do I miss something?

Here is my code, with some modifications for the original examples
example_proxy_GET.php:
<?php
require_once('../vendor/autoload.php');
require_once('config.php');
$filename = 'debug.log';
phpCAS::setDebug($filename);
phpCAS::setVerbose(true);
phpCAS::proxy(CAS_VERSION_3_0, $cas_host, $cas_port, $cas_context);
phpCAS::setNoCasServerValidation();
phpCAS::forceAuthentication(); //it shows me authentication fails at this 
line of code
flush();
try {
$service = phpCAS::getProxiedService(PHPCAS_PROXIED_SERVICE_HTTP_GET);
$service->setUrl("my_API_URL");//change it to my API URL to call the API
$service->send();
if ($service->getResponseStatusCode() == 200) {
echo '<div class="success">';
echo $service->getResponseBody();
echo '</div>';
} else {
echo '<div class="error">';
echo 'The service responded with a '
. $service->getResponseStatusCode() . ' error.';
echo '</div>';
}
} catch (CAS_ProxyTicketException $e) {
if ($e->getCode() == PHPCAS_SERVICE_PT_FAILURE) {
echo '<div class="error">';
echo "Your login has timed out. You need to log in again.";
echo '</div>';
} else {
throw $e;
}
} catch (CAS_ProxiedService_Exception $e) {
echo "test";
throw $e;
}
?>
</body>
</html>

example_service.php:(if I just call this directly, it works)
<?php
require_once '../test/config.php';
require_once('../vendor/autoload.php');
$filename = 'debug.log';
echo "TEST">$filename;
phpCAS::setDebug($filename);
phpCAS::setVerbose(true);
phpCAS::client(CAS_VERSION_3_0, $cas_host, $cas_port, $cas_context); //load 
from config
phpCAS::setNoCasServerValidation();
phpCAS::forceAuthentication();
//phpCAS::allowProxyChain(new CAS_ProxyChain_Any); //I have disabled this 
because I do not need to chain this service to another service
echo '<p>The user\'s login is <b>' . phpCAS::getUser() . '</b>.</p>';
// increment the number of requests of the session and print it
if (!isset($_SESSION['n'])) {
$_SESSION['n'] = 0;
}
echo '<p>request #' . (++$_SESSION['n']) . '</p>';
?>

Thanks for your kind help and quick reply 

On Friday, 2 August 2019 10:57:15 UTC+8, Doug C wrote:
>
> Daniel,
>
>  
>
> I would recommend “getting your feet wet” first by working with the 
> example_simple.php script.  Make sure to get this one working with your CAS 
> server first and then build from there by working with the 
> example_service.php which could act like your CAS protected API service and 
> example_proxy_GET.php which could act like the client wanting to access 
> your API.
>
>  
>
> Doug
>
>  
>
> *From:* [email protected] <javascript:> [mailto:[email protected] 
> <javascript:>] *On Behalf Of *Daniel Hui
> *Sent:* Friday, August 2, 2019 10:50 AM
> *To:* CAS Community <[email protected] <javascript:>>
> *Subject:* Re: [cas-user] Newbie question, about CAS proxy and phpCAS
>
>  
>
> Hi Doug,
>
> May I know which examples suit the use for me? One script for the API and 
> another one for the Proxy. Thanks.
>
> On Friday, 2 August 2019 10:47:02 UTC+8, Doug C wrote:
>
> Daniel,
>
>  
>
> Have you taken a lot at the phpCAS examples at 
> https://github.com/apereo/phpCAS/tree/master/docs/examples?  They are 
> really detailed with a lot of comments explaining what is happening and 
> even mentioning what things should be for testing and what should be 
> removed when deploying in a production environment.
>
>  
>
> Doug
>
>  
>
> *From:* [email protected] [mailto:[email protected]] *On Behalf Of *Daniel 
> Hui
> *Sent:* Friday, August 2, 2019 10:01 AM
> *To:* CAS Community <[email protected]>
> *Subject:* [cas-user] Newbie question, about CAS proxy and phpCAS
>
>  
>
> Hey guys, I am building an API that requires CAS authentication, and the 
> client which calls the API also needs the CAS authentication. After some 
> Googling, I find out the proxy function suits my use and I want to 
> implement it using phpCAS in my API and also build a simulate client to 
> test my API for CAS authentication. But I cannot find any pratical example 
> on the internet. May I get some help from you guys to show me some examples 
> to implement this? I need some kind of clear logic and clear codes to help 
> me understand this. I do not fully understand what is a CAS proxy, and what 
> can it do.
>
>  
>
>
> https://apereo.github.io/cas/5.0.x/installation/Configuring-Proxy-Authentication.html
>
>  
>
> p.s.: I have CAS implementation experience before, which build a website 
> that supports CAS.
>
>  
>
> Thanks for the help
>
> -- 
> - Website: https://apereo.github.io/cas
> - Gitter Chatroom: https://gitter.im/apereo/cas
> - List Guidelines: https://goo.gl/1VRrw7
> - Contributions: https://goo.gl/mh7qDG
> --- 
> You received this message because you are subscribed to the Google Groups 
> "CAS Community" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/a/apereo.org/d/msgid/cas-user/17c31784-1dd3-43ac-8989-14df184e425f%40apereo.org
>  
> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/17c31784-1dd3-43ac-8989-14df184e425f%40apereo.org?utm_medium=email&utm_source=footer>
> .
>
> -- 
> - Website: https://apereo.github.io/cas
> - Gitter Chatroom: https://gitter.im/apereo/cas
> - List Guidelines: https://goo.gl/1VRrw7
> - Contributions: https://goo.gl/mh7qDG
> --- 
> You received this message because you are subscribed to the Google Groups 
> "CAS Community" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] <javascript:>.
> To view this discussion on the web visit 
> https://groups.google.com/a/apereo.org/d/msgid/cas-user/748f5d63-9018-48ce-a372-925eac316126%40apereo.org
>  
> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/748f5d63-9018-48ce-a372-925eac316126%40apereo.org?utm_medium=email&utm_source=footer>
> .
>

-- 
- Website: https://apereo.github.io/cas
- Gitter Chatroom: https://gitter.im/apereo/cas
- List Guidelines: https://goo.gl/1VRrw7
- Contributions: https://goo.gl/mh7qDG
--- 
You received this message because you are subscribed to the Google Groups "CAS 
Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/a/apereo.org/d/msgid/cas-user/f8d7b972-42a3-46fc-b4e9-e3f283b14e6c%40apereo.org.

Reply via email to