Lequel est le plus sûr et pourquoi?
Les deux sont sécurisés, cela dépend de l'environnement dans lequel vous l'utilisez.
Je ne vois pas de raison pour laquelle une étape supplémentaire (échange du code d'autorisation pour le jeton) est ajoutée dans un flux de travail lorsque le serveur peut émettre directement un jeton d'accès.
C'est simple. Votre client n'est pas sécurisé. Voyons cela en détails.
Considérez que vous développez une application contre Instagram API
, donc vous enregistrez votre APP avec Instagram
et définissez ce dont API's
vous avez besoin. Instagram
vous fournira client_id
etclient_secrect
Sur votre site Web, vous créez un lien qui dit. "Venez utiliser mon application". En cliquant dessus, votre application Web doit effectuer deux appels Instagram API
.
First
envoyer une demande à Instagram Authentication Server
avec les paramètres ci-dessous.
1. `response_type` with the value `code`
2. `client_id` you have get from `Instagram`
3. `redirect_uri` this is a url on your server which do the second call
4. `scope` a space delimited list of scopes
5. `state` with a CSRF token.
Vous n'envoyez pasclient_secret
, vous ne pouviez pas faire confiance au client (l'utilisateur et / ou son navigateur qui essaient d'utiliser votre application). Le client peut voir l'url ou le script java et trouver client_secrect
facilement votre fichier. C'est pourquoi vous avez besoin d'une autre étape.
Vous recevez un code
et state
. L' code
ici est temporary
et n'est enregistré nulle part.
Ensuite, vous passez un second
appel à Instagram API
(depuis votre serveur)
1. `grant_type` with the value of `authorization_code`
2. `client_id` with the client identifier
3. `client_secret` with the client secret
4. `redirect_uri` with the same redirect URI the user was redirect back to
5. `code` which we have already received.
Comme l'appel est effectué depuis notre serveur, nous pouvons utiliser en toute sécurité client_secret
(ce qui montre comment nous sommes) avec code
quels spectacles l'utilisateur a autorisé l' client_id
utilisation de la ressource.
En réponse, nous aurons access_token