module ActionController::HttpAuthentication::Token

def token_and_options(request)

* +request+ - ActionDispatch::Request instance with the current headers.

==== Parameters

Returns +nil+ if no token is found.
Returns an +Array+ of [String, Hash] if a token is present.

{nonce: "def"}.
Then the returned token is "abc", and the options are

Authorization: Token token="abc", nonce="def"

"Token" or "Bearer". If the header looks like this:
The value for the Authorization header is expected to have the prefix
Parses the token and options out of the token Authorization header.
def token_and_options(request)
  authorization_request = request.authorization.to_s
  if authorization_request[TOKEN_REGEX]
    params = token_params_from authorization_request
    [params.shift[1], Hash[params].with_indifferent_access]
  end
end