当前位置: 首页 > 知识库问答 >
问题:

如何使用okta idp启动登录成功登录应用程序

温智明
2023-03-14

我已经创建了react应用程序,并使用下面提供的okta示例使用okta登录。

https://developer.okta.com/code/react/okta_react/#add-an-openid-connect-client-in-okta

我可以通过输入凭据并点击登录按钮成功地从我的应用程序登录到应用程序。

但是,如果我登录到okta开发帐户,然后如果我导航到我的应用程序,我的应用程序不识别现有的会话。

下面是我的登录组件,

 import React, { useEffect } from 'react';
 import { Redirect } from 'react-router-dom';
 import { useSelector, useDispatch } from "react-redux";
 
 import OktaSignInWidget from '../../Shared/oktaSignInWidget/OktaSignInWidget';
 import { useOktaAuth } from '@okta/okta-react';
 import * as sharedActions from '../../Shared/data/actions';
 
 const Login = ({ config }) => {
     const { oktaAuth, authState } = useOktaAuth();
     const dispatch = useDispatch();
 
     useEffect(() => {
         dispatch(sharedActions.setCurrentComponent('login'));
         // console.log('authState.isPending :', authState.isPending);
         // console.log('authState.isAuthenticated :', authState.isAuthenticated);
     }, []);
 
     useEffect(() => {
 
         if (!authState.isPending) {
             console.log(' authState.isPending :', authState.isPending);
             console.log(' authState.isAuthenticated :', authState.isAuthenticated);
         }
 
     }, [authState]);
 
     const onSuccess = (tokens) => {
         console.log('tokens :', tokens);
         oktaAuth.handleLoginRedirect(tokens);
     };
 
     const onError = (err) => {
         console.log('error logging in', err);
     };
 
     if (authState.isPending) return null;
 
     return authState.isAuthenticated ?
         <Redirect to={{ pathname: '/' }} /> :
         <OktaSignInWidget
             config={config}
             onSuccess={onSuccess}
             onError={onError} />;
 };
 export default Login;

共有1个答案

宁良平
2023-03-14
 useEffect(() => {

    // check to see if the user already has an okta session

    oktaAuth.session.exists().then((response) => {
        console.log(' response : ', response);

        setCheckingSession(false);

        if (response) {

            // oktaAuth.token.getWithRedirect();

            oktaAuth.token.getWithoutPrompt().then((response) => {
                console.log('response tokens : ', response);
                oktaAuth.tokenManager.setTokens(response.tokens);
            });

        }
    });

}, [oktaAuth.session, oktaAuth.token]);
 类似资料:
  • 我一直试图从一个成功的登录尝试开始一个新的活动与facebook集成,然而,当登录按钮按下后,登录pin,它返回相同的活动,登录按钮是打开的。 我已经有了一个转移到下一个活动的意图,但是它似乎没有任何响应登录成功。 } 我感谢任何给予的洞察力,我可能会从头开始这项活动,并再次尝试,如果没有任何似乎工作。 重申这个问题:点击“Continue with Facebook”按钮,显示的下一个活动是us

  • 问题内容: 对于典型的最典型的面向Internet的网站,当您通过关闭选项卡( 无需注销 )登录并离开该网站(然后 注销 ),然后再次访问时,可能不需要您重新指定凭据或登录,您可以直接登录。 这一切在后端如何发生?如何在我的JSF 2.1应用程序中启用这种机制? 在Tomcat7服务器上使用JSF 2.1 问题答案: 这基本上是通过一个长寿的cookie完成的。JSF API不提供此功能,因为它只

  • IECapabilities.SetCapability(InternetExplorerDriver.Introduce_Flakiness_By_Ignoling_Security_Domains,true); //WebDriver driver=new InternetExplorerDriver(ieCapabilities); driver.findElement(by.id(“use

  • 首先,我想让你知道,我是新来的Symfony。我在路上把我的PHP项目从我自己的“基本”MVC转到SimfOn.该项目已经运行良好,但我在适应Symfony时遇到了一些问题。 我从基本的框架开始,make: user和make: auth。模板运行良好。但是我未能将登录过程转换为AJAX和JSON。 我遵循了这个官方教程:https://symfonycasts.com/screencast/ap

  • 我正在用android编程。当我使用(LoginActivity)成功登录时,下一步是加载MainActivity,这个MainActivity是一个导航抽屉活动,但我遇到了这个错误: 致命异常:主进程:com.example.administrador.vicon,PID:32149java.lang.运行时异常:无法启动活动ComponentInfo{com.example.administr

  • 我试图调试我的案例,简单的ActiveWeb应用程序没有在Jetty下运行。它的行为就像不存在任何用于请求处理的类一样,并返回错误404。 问题不在于ActiveWeb。是关于码头的。如何发现Jetty有一些web应用程序,它有一个带注释的类,并将在HTTP请求下执行它? 目前我已经下载了Jetty,它可以工作。不幸的是,它没有日志记录。当404错误返回时,没有任何东西显示在或中,也没有任何文件显