Skip to content

Instantly share code, notes, and snippets.

@ognis1205
Last active January 28, 2025 12:54
Show Gist options
  • Save ognis1205/b72664260fbc30daa3c5412e90164530 to your computer and use it in GitHub Desktop.
Save ognis1205/b72664260fbc30daa3c5412e90164530 to your computer and use it in GitHub Desktop.
OktaSignInWidget.tsx
import { useEffect } from 'react';
import OktaSignIn from '@okta/okta-signin-widget';
interface OktaSignInWidgetProps {
onSuccess: (tokens: any) => void;
onError: (error: Error) => void;
}
export default function OktaSignInWidget({
onSuccess,
onError,
}: OktaSignInWidgetProps) {
useEffect(() => {
const widget = new OktaSignIn({
clientId: process.env.REACT_APP_OKTA_CLIENT_ID,
redirectUri: window.location.origin,
issuer:
'https://' + process.env.REACT_APP_OKTA_DOMAIN + '/oauth2/default',
logo: '/uc-logo.png',
});
widget.showSignInToGetTokens({
el: '#osw-container',
})
.then(function (res) {
onSuccess(res?.idToken?.idToken);
widget.remove();
})
.catch(function (error) {
onError(error);
});
return () => widget.remove();
}, [onSuccess, onError]);
return <div id={'osw-container'} />;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment