Простой пример 2-legged службы
Некоторые приложения, использующие Viewer, выполняются только на стороне клиента. Тем не менее, вам по-прежнему нужен токен с правами только для чтения, чтобы получить доступ к файлам в вашем bucket, чтобы создать экземпляр просмотрщика. Не размещайте свои учетные данные в интерфейсе пользователя и используйте вызовы ajax. Когда ваши учетные данные скомпрометированы, каждый может получить доступ ко всем вашим файлам на серверах Autodesk.
Ниже представлена очень простая служба токена в Node.js, которая предоставляет токен с правами только для чтения.
- package.json
- {
- "name": "autodesk-auth-token",
- "version": "1.0.0",
- "description": "Простая служба, которая обслуживает токен только для чтения при помощи API Autodesk. Этот пример получает 2-legged токен. ",
- "main": "index.js",
- "dependencies": {
- "express": "^4.15.2",
- "request": "^2.81.0"
- }
- }
- index.js
- 'use strict'
- const express = require('express');
- const request = require('request').defaults({
- baseUrl: 'https://developer.api.autodesk.com'
- });
- const app = express();
- // помещаем это в конфигурацию среды
- let autodesk_client_id = process.env.autodesk_client_id || '';
- let autodesk_client_secret = process.env.autodesk_client_secret || '';
- let port = process.env.PORT || 3000;
- let expireTime = Date.now();
- let token = '';
- let options = {
- method: 'POST',
- url: '/authentication/v1/authenticate',
- headers: {
- 'content-type': 'application/x-www-form-urlencoded'
- },
- form: {
- client_id: autodesk_client_id,
- client_secret: autodesk_client_secret,
- grant_type: 'client_credentials',
- scope: 'data:read'
- }
- };
- app.get('/', (req, res) => {
- if (!token || Date.now() > expireTime) {
- request(options, (e, r, body) => {
- token = body; // используем всё тело в качестве токена
- expireTime = Date.now() + JSON.parse(body).expires_in;
- console.log(token);
- res.send(token);
- });
- } else {
- res.send(token);
- }
- });
- app.listen(port);
Для развертывания на AWS или heroku, установите переменные process.env.autodesk_client_id и process.env.autodesk_client_secret в переменных среды, и служба должна будет вернуть для вас токен с правами только для чтения.
Источник: https://forge.autodesk.com/blog/simple-2-legged-token-service-sample
Обсуждение: http://adn-cis.org/forum/index.php?topic=
Опубликовано 17.04.2017