2016-12-25 18 views
0

Итак, я использую виджет входа Okta для аутентифицированных пользователей для моего внутреннего WebApp.Получение пользователей SessionID из Okta Вход в систему Wudget

Тем не менее, я борюсь с тем, как я получаю SessionID из созданного сеанса, хранящегося в cookie из своего домена, или отправлен обратно в ответ, чтобы затем был сохранен, поэтому впоследствии он может быть использован для выполнения действий на этом сеанс пользователя (например, выход из системы). Моя способность JavaScript ужасна, но я пытаюсь узнать здесь. См. Ниже мой код для страницы входа. Если кто-то может помочь мне, как я могу в ответ от входа в систему получить идентификатор sessionID, то он будет очень признателен.

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<?php echo $MetaData['charset']."\n";?> 
 
<?php echo $MetaData['viewport']."\n";?> 
 
<?php echo $MetaData['description']."\n";?> 
 
<?php echo $MetaData['author']."\n";?> 
 
<?php echo $MetaData['title']."\n";?> 
 

 
<link rel="shortcut icon" href=""> 
 
<script src="https://ok1static.oktacdn.com/assets/js/sdk/okta-signin-widget/1.7.0/js/okta-sign-in.min.js" type="text/javascript"></script> 
 
<link href="https://ok1static.oktacdn.com/assets/js/sdk/okta-signin-widget/1.7.0/css/okta-sign-in.min.css" type="text/css" rel="stylesheet"> 
 
<link href="https://ok1static.oktacdn.com/assets/js/sdk/okta-signin-widget/1.7.0/css/okta-theme.css" type="text/css" rel="stylesheet"> 
 
<link href="<?php echo base_url().'assets/css/custom.css' ?>"type="text/css" rel="stylesheet"> 
 
</head> 
 
<body style="background-color:#f5f5f5;"> 
 
\t <div id="okta-login-container"></div> 
 
\t <script type="text/javascript"> 
 
\t \t var orgUrl = '<?php echo $OktaInstanceConfig['OktaInstanceURL'];?>'; 
 
    var redirectUrl = '<?php echo base_url().'index.php/Dashboard' ?>'; 
 
    var oktaSignIn = new OktaSignIn({ 
 
\t \t \t baseUrl: orgUrl, 
 
\t \t \t logo: '<?php echo base_url()."assets/images/".$CompanyConfig["CompanyName"]."/logo.svg"?>', 
 
\t \t \t authParams: { 
 
\t responseType: 'id_token', 
 
\t responseMode: 'okta_post_message', 
 
\t scope: [ 
 
\t \t 'openid', 
 
\t \t 'email', 
 
\t \t 'profile', 
 
\t \t 'address', 
 
\t \t 'phone', 
 
\t \t 'groups' 
 
\t \t \t \t \t ] 
 
    \t \t \t \t \t \t \t \t \t } 
 
\t \t }); 
 

 
\t \t oktaSignIn.renderEl(
 
\t \t { el: '#okta-login-container' }, 
 
\t \t function (res) { 
 
\t \t  if (res.status === 'SUCCESS') 
 
     { 
 
      console.log('User %s successfully authenticated %o', res.user.profile.login, res.user); 
 
      res.session.setCookieAndRedirect(redirectUrl); 
 
     } 
 
\t \t } 
 
\t \t); 
 
\t </script> 
 
</body> 
 
</html>

ответ

0

Okta устанавливает сеанс пользователя после того, как метод setCookieAndRedirect(redirectUrl) называется.

Логика внутри ваших redirectUrl (index.php) можете получить sessionId по retrieving the current session используя для входа в систему Widget:

<!-- index.php --> 
<!DOCTYPE html> 
<html> 
    <head> <!-- scripts and stylesheets --> </head> 

    <body> 
     <script type="text/javascript"> 

      var oktaSignIn = new OktaSignIn({ /* config */}); 

      oktaSignIn.session.exists(function (exists) { 
       if (exists) { 
        // Session exists 
        oktaSignIn.session.get(function (sessionInfo) { 
         // sessionInfo.id 
        }, function(err) { // error retrieving session }) 
         return; 
        } else { console.log("No session"); 
       } 
      }); 

     </script> 
    </body> 
</html> 
+0

Спасибо за это и извинениями за время, потраченное, чтобы вернуться. Таким образом, я могу получить идентификатор сеанса на другой странице с помощью виджета signin, но я не могу найти способ сохранить его как файл cookie или передать его на мой URL-адрес перенаправления, который является .php-страницей. Я хочу, чтобы мое приложение PHP могло использовать этот идентификатор сеанса. –

 Смежные вопросы

  • Нет связанных вопросов^_^