2013-01-03 5 views
2

Est-il possible d'obtenir un jeton d'accès permanent avec OAuth2? Je veux utiliser Box pour télécharger des fichiers lors d'une installation. L'installation récupère tous les fichiers dans un dossier particulier. J'ai un compte de boîte mis en place en tant que propriétaire du dossier et dans l'API v1 je peux obtenir un auth_token permanent pour réutiliser dans mon exécutable. Mais il semble qu'avec OAuth2 je ne peux obtenir qu'un jeton d'accès d'une heure et un jeton d'actualisation. Mais comme l'utilisateur final n'a pas accès à Box et que l'application est une application de bureau, ils ne peuvent pas s'authentifier à la volée si un jeton a expiré. Je sais qu'il existe d'autres solutions, mais l'API V1 m'a permis de le faire et j'espérais ne pas perdre cette fonctionnalité lorsque V1 est obsolète.Jeton d'accès permanent dans OAuth2

Répondre

1

L'implémentation de OAuth2 par Box ne génère pas de jetons permanents. Cependant, tout comme dans l'API V1, vous pouvez créer un lien pour un fichier que vous téléchargez et qui est accessible aux utilisateurs non-Box. Vous devez définir l'accès partagé sur "ouvrir" dans l'interface utilisateur, ou via l'API le json. Il y a un section in the docs qui explique comment le faire. Vous passez essentiellement un PUT au/fichiers/point final avec un petit corps JSON comme ceci:

{"shared_link": {"access": "open"}} 

Vous récupérerez un corps de fichier JSON, avec une section shared_link qui est complète. Quelque chose comme ceci:

"shared_link": { 
    "url": "https://www.box.com/s/rh935iit6ewrmw0unyul", 
    "download_url": "https://www.box.com/shared/static/rh935iit6ewrmw0unyul.jpeg", 
    "vanity_url": null, 
    "is_password_enabled": false, 
    "unshared_at": null, 
    "download_count": 0, 
    "preview_count": 0, 
    "access": "open", 
    "permissions": { 
     "can_download": true, 
     "can_preview": true 
    } 
+0

Tous les autres fournisseurs de cloud avec lesquels j'ai de l'expérience fournissent un jeton d'actualisation statique (Google Drive, SkyDrive par exemple). Peut ne pas être conforme aux spécifications, mais il est beaucoup plus facile de le maintenir correctement. Dites que je veux enregistrer le refreshtoken mis à jour après chaque utilisation - c'est bien, mais que se passe-t-il s'il y a un dysfonctionnement ou que l'application est arrêtée pour une raison quelconque (sur un appareil mobile par exemple). Ensuite, je devrai demander à ce que l'utilisateur refasse le flux d'authentification. – AndersC

1

Vous pouvez utiliser jeton rafraîchissement pour obtenir un nouveau jeton d'accès qui dure une heure, et un nouveau jeton de rafraîchissement.

Ainsi, votre application de bureau peut avoir besoin de se connecter à Internet en toute sécurité pour lire/écrire

  • jeton d'accès
  • jeton d'accès date d'expiration
  • rafraîchissement jeton
  • jeton rafraîchissement date d'expiration **

** Chaque jeton d'actualisation n'est valide que pendant 14 jours ays. Espérait que Box supprimer la fonction d'expiration.

Vous pouvez également placer vos fichiers dans un emplacement accessible au public selon la suggestion originale.