When you use $window.location.href
the browser will make HTTP request, not your code. So you cannot add authentication header for it.
I suggest that you could use a parameter ?token=auth_token
instead.
There is another suggesstion (more secure):
You can generate a download token for each PDF file which will contain expire time and some information, the token will be encrypted. In server side (your api), you will get the token then you can decrypt it and check this token is valid or invalid. If it's valid you will return a FileContent type from your api.
E.g. yourdomain.com/api/document/aaa-bbb-ccc/download/xxxxxxxxxxxxxxxxx.yyyyyyyyyyyyyyyyyyyyyyyy
With:
xxxxxxxxxxxxxxxxx.yyyyyyyyyyyyyyyyyyyyyyyy: token
aaa-bbb-ccc: documentId