use async fetch to check login; avoid keyword usage