React Native Requires Chilkat v11.5.0+
React Native
Box: Authorize a User with OAuth 2.0
See more Box Examples
Interactive local-development example using a browser and a loopback callback. Register exactly http://localhost:3017/ in the Box User app. Run this in a trusted environment that can hold the client secret. A deployed web app must handle its registered HTTPS callback on the server.
See the Box API guide for setup and the complete workflow.
Chilkat React Native Downloads
import { JsonObject, OAuth2 } from '@chilkat/react-native'
function chilkatExample() {
// Requires Chilkat 11.5.0 or later and a previously unlocked Chilkat bundle.
// See Global Unlock Sample.
// Guide: Box API Guide.
const oauth2 = new OAuth2();
oauth2.listenPort = 3017;
oauth2.authorizationEndpoint = 'https://account.box.com/api/oauth2/authorize';
oauth2.tokenEndpoint = 'https://api.box.com/oauth2/token';
oauth2.clientId = 'BOX_CLIENT_ID';
oauth2.clientSecret = 'BOX_CLIENT_SECRET';
// Use Box's documented confidential-client authorization-code flow.
oauth2.codeChallenge = false;
let url: string;
try {
url = oauth2.startAuth();
} catch {
console.log(oauth2.lastErrorText);
return;
}
try {
oauth2.launchBrowser(url);
} catch {
console.log(oauth2.lastErrorText);
return;
}
let elapsedMs = 0;
while ((elapsedMs < 120000) && (oauth2.authFlowState < 3)) {
oauth2.sleepMs(100);
elapsedMs += 100;
}
if (oauth2.authFlowState < 3) {
oauth2.cancel();
console.log('Authorization timed out.');
return;
}
if (oauth2.authFlowState !== 3) {
console.log(`Authorization was denied or failed. State: ${oauth2.authFlowState}`);
return;
}
// Retain both tokens in your application's protected token store.
// The variables below are deliberately not printed.
const accessToken = oauth2.accessToken;
const refreshToken = oauth2.refreshToken;
// For this local-development example only, save in a directory restricted to this user.
// Create qa_data/tokens before running; never put this file under a web root.
const tokens = new JsonObject();
try {
tokens.load(oauth2.accessTokenResponse);
} catch {
console.log(tokens.lastErrorText);
return;
}
try {
tokens.writeFile('qa_data/tokens/box_oauth.json');
} catch {
console.log(tokens.lastErrorText);
return;
}
console.log('Authorization complete; token response saved in the protected local token file.');
}