* feat: Add Google strategy
* fix: include Google strategy cheat sheet
* fix: Add documentation grouping for Google strategy
* chore: update formatter.
---------
Co-authored-by: James Harton <james@harton.nz>
* feat(AshAuthentication.Strategy.Oidc): Add OpenID Connect strategy.
* chore(CI): disable the workflow on pull request event, since it's covered by push.
* Adds the `require_token_presence_for_authentication?` DSL option to the Authentication extension which when enabled changes the following behaviour:
1. The `store_in_session` plug will store the user's token rather than their subject in the session.
2. The `retrieve_from_session` plug will look for a stored token in the session rather than a subject and ensure that it's present in the `TokenResource`.
3. The `retrieve_from_bearer` plug will ensure that the token is present in the `TokenResource`.
* Adds the `get_token` action to the `TokenResource`.
* improvement(Confirmation): Confirmation is not a strategy.
* improvement(Confirmation): Support more than one confirmation entity.
* chore: move FIXME doc to issue.
Highlights:
* Replaced `AshAuthentication.Provider` with the much more flexible `AshAuthentication.Strategy`.
* Moved strategies to within the `authentication` DSL using entities and removed excess extensions.
* Added a lot more documentation and test coverage.
* improvement(docs): change all references to `actor` to `user`.
The word "actor" has special meaning in the Ash ecosystem.
* chore: format `dev` directory also.
* feat(Ash.PlugHelpers): Support standard actor configuration.
* Adds the `:set_actor` plug which will set the actor to a resource based on the subject name.
* Also includes GraphQL and JSON:API interfaces in the devserver for testing.
This is missing a bunch of features that you probably want to use (eg confirmation, password resets), but it's a pretty good place to put a stake in the sand and say it works.