Thruway\Session::setAuthenticationDetails PHP Method

setAuthenticationDetails() public method

Set authentication details
public setAuthenticationDetails ( AuthenticationDetails $authenticationDetails )
$authenticationDetails Thruway\Authentication\AuthenticationDetails
    public function setAuthenticationDetails($authenticationDetails)
    {
        $this->authenticationDetails = $authenticationDetails;
    }

Usage Example

 /**
  * Call the RPC URI that has been registered to handle Authentication Hello Messages
  *
  * @param $authMethod
  * @param $authMethodInfo
  * @param Realm $realm
  * @param Session $session
  * @param HelloMessage $msg
  */
 private function onHelloAuthHandler($authMethod, $authMethodInfo, Realm $realm, Session $session, HelloMessage $msg)
 {
     $authDetails = new AuthenticationDetails();
     $authDetails->setAuthMethod($authMethod);
     $helloDetails = $msg->getDetails();
     if (isset($helloDetails->authid)) {
         $authDetails->setAuthId($helloDetails->authid);
     }
     $session->setAuthenticationDetails($authDetails);
     $sessionInfo = ["sessionId" => $session->getSessionId(), "realm" => $realm->getRealmName()];
     $onHelloSuccess = function ($res) use($realm, $session, $msg) {
         // this is handling the return of the onhello RPC call
         if (isset($res[0]) && $res[0] == "FAILURE") {
             $session->abort(new \stdClass(), "thruway.error.authentication_failure");
             return;
         }
         if (count($res) < 2) {
             $session->abort(new \stdClass(), "thruway.auth.invalid_response_to_hello");
             return;
         }
         switch ($res[0]) {
             case "CHALLENGE":
                 // TODO: validate challenge message
                 $authMethod = $res[1]->challenge_method;
                 $challenge = $res[1]->challenge;
                 $session->getAuthenticationDetails()->setChallenge($challenge);
                 $session->getAuthenticationDetails()->setChallengeDetails($res[1]);
                 $challengeDetails = $session->getAuthenticationDetails()->getChallengeDetails();
                 $session->sendMessage(new ChallengeMessage($authMethod, $challengeDetails));
                 break;
             case "NOCHALLENGE":
                 $details = new \stdClass();
                 $details->authid = $res[1]->authid;
                 $details->authmethod = $session->getAuthenticationDetails()->getAuthMethod();
                 if (isset($res[1]->_thruway_authextra)) {
                     $session->getAuthenticationDetails()->setAuthExtra($res[1]->_thruway_authextra);
                 }
                 $session->sendMessage(new WelcomeMessage($session->getSessionId(), $details));
                 break;
             default:
                 $session->abort(new \stdClass(), "thruway.error.authentication_failure");
         }
     };
     $onHelloError = function () use($session) {
         Logger::error($this, "onhello rejected the promise");
         $session->abort("thruway.error.unknown");
     };
     $onHelloAuthHandler = $authMethodInfo['handlers']->onhello;
     //Make the OnHello Call
     $this->session->call($onHelloAuthHandler, [$msg, $sessionInfo])->then($onHelloSuccess, $onHelloError);
 }
All Usage Examples Of Thruway\Session::setAuthenticationDetails