How to provide a token ?
This is the Correct Method?
OR Coding LIKE is correct Method ?
It uses a different grant. The correct method is according to your application needs. Before you implement OAuth, you need to learn about grant types :
Authorization code grant
The authorization code grant should be very familiar if you’ve ever signed into an application using your Facebook or Google account.
Implicit grant
The implicit grant is similar to the authorization code grant with two distinct differences.
It is intended to be used for user-agent-based clients (e.g. single page web apps) that can’t keep a client secret because all of the application code and storage is easily accessible.
Secondly instead of the authorization server returning an authorization code which is exchanged for an access token, the authorization server returns an access token
Resource owner credentials grant
This grant is a great user experience for trusted first party clients both on the web and in native device applications.
Client credentials grant
The simplest of all of the OAuth 2.0 grants, this grant is suitable for machine-to-machine authentication where a specific user’s permission to access data is not required.
Refresh token grant
Access tokens eventually expire; however some grants respond with a refresh token which enables the client to get a new access token without requiring the user to be redirected.
Which OAuth 2.0 grant should I use?
A grant is a method of acquiring an access token. Deciding which grants to implement depends on the type of client the end user will be using, and the experience you want for your users.

How to handle Refresh Token System for Angular?
Access tokens eventually expire; The client sends a POST request with following body parameters to /oauth/token
:
grant_type
with the value refresh_token
refresh_token
with the refresh token
client_id
with the the client’s ID
client_secret
with the client’s secret
scope
with a space-delimited list of requested scope permissions. This is optional; if not sent the original scopes will be used, otherwise you can request a reduced set of scopes.
$http = new GuzzleHttp\Client;
$response = $http->post('http://your-app.com/oauth/token', [
'form_params' => [
'grant_type' => 'refresh_token',
'refresh_token' => 'the-refresh-token',
'client_id' => 'client-id',
'client_secret' => 'client-secret',
'scope' => '',
],
]);
return json_decode((string) $response->getBody(), true);
Or you can using Angular HTTPInterceptor
for token refreshing. HTTP Interceptors are used for adding custom logic for logging, modifying response, error handling, but one common case is to automatically attach authentication informations to request and to refresh token in order to maintain user session active.
Ref :