Search code examples
autodesk-forgeautodesk-viewerautodesk

Autodesk forge configurator inventor add new model authorization error


Hello we are using Autodesk forge configurator inventor And we created our own js function. Below, you will find the logic we want to import to the application. On it's own, we make it work, but with forge configurator inventor, we get the authentication error. We tried a lot of different options but failed to make it load the document. Error is --> GET 401 (Unauthorized)

import repo from '../../Repository';
var options = repo.hasAccessToken() ?
    { accessToken: repo.getAccessToken() } :
    { env: 'Local' };

var documentId = 'urn:MyUrn';
                Autodesk.Viewing.Document.load(
                    documentId, (doc) => {
                    console.log("test");
                    let items = doc.getRoot().search(
                        {
                            type: "geometry",
                            role: "3d",
                        },
                        true
                    );
                    if (items.length === 0) {
                        console.error("Document contains no viewables.");
                        return;
                    }
              
                    viewer.loadDocumentNode(doc, items[0], {
                            keepCurrentModels: true,
                            //placementTransform: tr,

                        })
                        .then(function (model2) {
                            secondModel = model2;

                            let tr = secondModel.getPlacementTransform();
                            let _selecterTr = _selectedModel.getPlacementTransform();
                            console.log(_selecterTr);
                            tr = _selecterTr;
                            secondModel.setPlacementTransform(tr);
                            viewer.impl.invalidate(true, true, true);

                        });
                }, onDocumentLoadFailure,options);

                function onDocumentLoadFailure() {
                    console.error('Failed fetching Forge manifest');
                }

Solution

  • The main issue is that repo does not provide an access token because it was never needed. The models' SVF contents are always loaded directly from the server - instead of relying on the Model Derivative service to provide them.

    You just have to provide an endpoint (e.g. /api/viewables/token) on the server-side by adding a Controller that could be called from the client-side in order to get an access token with viewables:read scope.

    Detailed information here: https://forge.autodesk.com/blog/drag-and-drop-design-automation-inventor-sample