Missing email claim from OAuth provider with Ash Authentication

Hello!

I’m wondering how to handle a OAuth provider (Instagram) that doesn’t return an email claim using Ash Authentication.

I already have a Phoenix project using Pow Assent, and am considering switching to Ash including Ash Authentication. I’m reusing the Assent strategy as-is.[1]

The way it works with Pow on Phoenix is through the /:provider/add-user-id route in the RegistrationController.[2]

Basically if it fails to get a user ID on callback, it will redirect to a page where the user can enter their email address.[3]

What I couldn’t figure out, however, is whether Ash does have something similar out of the box, and if not, what would be the most sensible way to implement it.


  1. Assent Instagram Business strategy · GitHub ↩︎

  2. pow_assent/lib/pow_assent/phoenix/router.ex at 9833bc41d3d2f1ae979368212732ce7ba11f2f09 · pow-auth/pow_assent · GitHub ↩︎

  3. pow_assent/lib/pow_assent/phoenix/controllers/authorization_controller.ex at 9833bc41d3d2f1ae979368212732ce7ba11f2f09 · pow-auth/pow_assent · GitHub ↩︎

We use assent under the hood, so it would likely work however they handle things. You may have to experiment as I don’t know if anyone has set up instagram auth with AshAuthentication before.