
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
@itwin/browser-authorization
Advanced tools
Copyright © Bentley Systems, Incorporated. All rights reserved. See LICENSE.md for license terms and full copyright notice.
The @itwin/browser-authorization package contains a browser based client for authorization with the iTwin platform.
Create a new instance of BrowserAuthorizationClient
, passing in needed credentials:
const client = new BrowserAuthorizationClient({
clientId: // find at developer.bentley.com
redirectUri: // find/set at developer.bentley.com
scope: // find/set at developer.bentley.com
authority: // ims.bentley.com
postSignoutRedirectUri: // find/set at developer.bentley.com (see note below)
responseType: "code",
silentRedirectUri: // find/set at developer.bentley.com
});
Important! The above
postSignoutRedirectUri
will not fully work if the url ends with /logout and https is not supported on your site. For local development where https is less common, we suggest using /logout-local for the url path.
The most common way to use an instance of BrowserAuthorizationClient
will depend on your specific application and workflow. Here's one common way:
// will attempt to sign in silently,
// and then via redirect if not possible.
await client.signInRedirect();
Instead of a redirect, you may want to trigger a pop up to handle the sign in process:
await client.signInPopup();
After the user signs in, they will be redirected to the redirect url specified in your oidc configuration (developer.bentley.com) Once on that page, you must call:
await client.handleSigninCallback();
to complete the process. Once back on your initial page, the call to client.signInSilent
will succeed and you should be authorized.
If the callback occurs on a page where the configured client
is not available, you can use the static method to complete the process:
await BrowserAuthorizationClient.handleSigninCallback();
// This library defaults to localStorage for storing state.
// To use sessionStorage (or another Storage object), you can pass it as an argument.
// If overriding the default localStorage, also set the stateStore via client.setAdvancedSettings({stateStore: yourStore})
await BrowserAuthorizationClient.handleSigninCallback(window.sessionStorage);
This will pull the client configuration from localStorage, using the state nonce provided by OIDC to select the proper configuration.
Other notable methods:
client.signOutRedirect()
- starts the signout flow via redirect
client.signOutPopup()
- starts the signout flow via popup.
client.setAdvancedSettings(userManagerSettings)
- Allows for advanced options to be supplied to the underlying UserManager.
For information about the browser authorization workflow please visit the Authorization Overview Page.
rush update
(or rush install
) and rush build
rush test:integration
will run integration tests for the entire repo.rushx test:integration
runs the tests only in the Browser package.rushx test:integration:start-test-app
and access localhost:1234 in your browser.FAQs
Browser authorization client for iTwin platform
We found that @itwin/browser-authorization demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.