We generally recommend the device key approach wherever it makes sense. It's used exclusively (save for kind 0 and WoT DMs) in Trackstr and nostr:nprofile1qqsdjx9yymrv7q50cwt2zm076q732lwzx4tz0za5rjg3hzqaxcearaspzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszrnhwden5te0dehhxtnvdakz79lc9uc, and for nostr:nprofile1qqsxhugzf33nvzfmvvkm9k3pkedyf37c9qcy2na56atrfw3grctpeyqpzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszrnhwden5te0dehhxtnvdakz7cl24cn we do a lot of signing with ephemeral keys to avoid the same problem
There's more we'd like to improve, such explaining why a permission is required post request / whilst waiting for the signed event
Users should never be expected to "accept all", steer clear of apps that require too many permissions.