Why can't I connect to my local Kirby API?

446 views Asked by At

I’m trying to make an api request from another backend (written in Node.js) to my Kirby API, but everything I try just results in ECONNREFUSED. What am I doing wrong?

const res = await fetch(`${apiUrl}/auth`, {
  headers: {
    'Authorization': `Basic ${Buffer.from(`${username}:${password}`).toString('base64')}`,
    'Content-Type': 'application/json'
  }
})

I’ve tried HTTP and HTTPS, I’ve tried different endpoints, all of them give me the same result.

By contrast, fetching the same URL directly with my browser provides me with a JSON response saying that I’m unauthorized (expected).

Why doesn’t it work when making the request programmatically?

I have this in my config.php, although I’d like to remove that allowInsecure if I can :

'api' => [
  'basicAuth' => true,
  'allowInsecure' => true,
],

Any thoughts on how to troubleshoot this?

New to Kirby so excuse me if this is a newbie question.

Here is the specific error I get: FetchError: request to http://localhost:8000/api/auth failed, reason: connect ECONNREFUSED 127.0.0.1:8000

1

There are 1 answers

0
Shawn On BEST ANSWER

Apparently, the solution was to start Kirby using php -S 0.0.0.0:8000 instead of using php -S localhost:8000, and then reaching the API via http://0.0.0.0:8000/api instead of http://localhost:8000/api.