@esri/arcgis-rest-request
Version:
Common methods and utilities for @esri/arcgis-rest-js packages.
48 lines (47 loc) • 1.63 kB
TypeScript
export interface IAppAccess {
/**
* Verifies that the token is valid and the user has access to
* the specified app (clientId)
*/
valid: boolean;
/**
* Should the app present the current user with a "View Only" mode
*/
viewOnlyUserTypeApp: boolean;
}
/**
* Validates that the user has access to the application
* and if they user should be presented a "View Only" mode
*
* This is only needed/valid for Esri applications that are "licensed"
* and shipped in ArcGIS Online or ArcGIS Enterprise. Most custom applications
* should not need or use this.
*
* ```js
* import { validateAppAccess } from '@esri/arcgis-rest-request';
*
* return validateAppAccess('your-token', 'theClientId')
* .then((result) => {
* if (!result.value) {
* // redirect or show some other ui
* } else {
* if (result.viewOnlyUserTypeApp) {
* // use this to inform your app to show a "View Only" mode
* }
* }
* })
* .catch((err) => {
* // two possible errors
* // invalid clientId: {"error":{"code":400,"messageCode":"GWM_0007","message":"Invalid request","details":[]}}
* // invalid token: {"error":{"code":498,"message":"Invalid token.","details":[]}}
* })
* ```
*
* Note: This is only usable by Esri applications hosted on *arcgis.com, *esri.com or within
* an ArcGIS Enterprise installation. Custom applications can not use this.
*
* @param token platform token
* @param clientId application client id
* @param portal Optional
*/
export declare function validateAppAccess(token: string, clientId: string, portal?: string): Promise<IAppAccess>;