Do I really have to write scripts to get Postman to be usable? Auth bearer token

My question:
I have a standard login that returns :

{
    "success": true,
    "message": "Welcome, noob ;)",
    "error": false,
    "reason": false,
 "data": {
        "token": "eyJ0..."
    }
}

*Details (like screenshots)*:


*How I found the problem*:
I tried creating an environment and a variable bearer_token. I also tried creating a variable at the top level collection called bearer_token. I have all the Auth pulldown menus set to "Inherit from parent"



*I've already tried*:
1. Wouldn't it make sense to be able to have the login/ API feed the top level or environment bearer token variable directly? 
2. Does the environment variable take precedence over the Collection variable, or vice versa?
3. Should I define the authorization at the collection level in terms of a variable also defined at the same level, or do I need the variable to be at a higher level of scope?
4. If I must write a script, it makes sense to me to extract the data->token from the login/ and store it into the variable. This requires a "post-request" script correct ? Why does Postman UI only offer Pre-request scripts ?

Many thanks

Not sure if there is something missing from your writeup… but maybe this will help? …

In terms of which variable takes precedence, this would depend entirely on which variable you configure the call to use. You should be able to see this by hovering over the variable in question and you’d see a little icon… C for collection, E for environment, G for global.

I would personally consider a bearer to be “environment” level as multiple collections could use the same environment, whereas setting as a collection level could result in replication of setting variables.

My understanding of what you would consider a “post-request” script would be to use the “Tests” tab. The tests tab is executed after the call has produced a response. So you could use something like;

pm.environment.set(“bearer_token”, “variable_value”);

to save your bearer_token as an environment variable.
This variable could then be used in subsequent calls.

Hope this helps.