Okta React SDK for web application with BFF

Hello, I am trying to implement Authorization Code Flow with PKCE for a web application with BFF (Backend For Frontend) using Okta React SDK.

The SDK works well for Single Page Application (SPA) but the design I need to implement is supposed to use BFF (.NET Core) and I need to use standard Web Application with client_id and client_secret.

My idea is that upon user’s “sign in” button click, the React frontend will call the LoginWithRedirect component which redirects the user to the Okta hosted widget. The user will complete authentication and will be redirected to /callback endpoint on the React frontend. This is where LoginCallback component picks up normally for SPA applications and exchanges the authorization_code and code_verifier for access token. But for my case, I need the React frontend to send the authorization_code and code_verifier to the BFF which will attach the application client_secret and exchange these for the access_token. The React frontend will be returned a session with the BFF. The session will be associated with the access_token on BFF. The access_token will be attached to each call to resource servers by the BFF. All user request for data will flow through the BFF.

My only idea is that I can override the LoginCallback component with my own implementation, but it does not feel right. First, I would have to extract the code_verifier and authorization_code and send these to the BFF, then I would await a session to be returned from BFF and finally manually set authState.isAuthenticated to true. I do not think this is a very unique problem, but I was not able to find it documented anywhere.

I will be very grateful for any direction that will move me further.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.