I'm trying to understand OAuth 2:
As I understand it "access_token" and "authentication code" are really quite similar in that they represent the end-users will. The only difference is that the access_token can be used alone while the "authentication code" must be used with the app_secret (client_secret in rfc6749).
So in my mind it would clarify a lot, if they had similar names, like:
- "full_token", "strong_token" or "super_token" for "access_token" as it can be used alone. It is really powerful, it must never be transferred over a non secure line. (But can be used to make requests directly from the browser)
- "half_token", "weak_token" or "normal_token" for "authentication code" because it must be combined with the app_secret. It can be transferred over non secure lines, but as the app_secret never should be sent to the browser, it can never be used from there.
And as a consequence the corresponding grant type names would be called:
- "full_token grant type" for "implicit grant type"
- The term means that a full_token is generated directly and returned to the browser only, (since it is returned in the fragment of the redirect uri (the #-part of the uri) which is not included when the browser makes the redirect request (so it will never be exposed even if the request is to a non-secure uri)). The browser can then use it to extract data, or it can be transferred to the app server (if the app uses TLS)
- "half_token grant type" for "authorization code grant type"
- The term means that a half_token is generated, the app makes sure it comes to the app server (secure line not needed). At the app server it is sent along with the app_secret to extract data from the authorization server. (rfc6749 suggests that it should first be replaced with a full_token, but this shouldn't be necessary in my mind.)
Or are there other differences that I have missed?