ashkan117
Multiple Strategies for AshAuthentication
I am trying to migrate my current application from only allowing users to sign in with Google Auth, to also be able to create an account with username and password. I want people with just username and password to be able to optionally connect their google accounts in order to sync their calendars.
So I currently have a working setup for register_with_password and register_with_google but I’m a little unsure how I can add the option just to connect a users Google Calendar? Would I need to create another oauth strategy?
# Current oauth2 for registering
oauth2 :google do
...
authorization_params(
access_type: "offline",
scope:
"https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/calendar"
)
identity_resource(MyApp.Accounts.UserIdentity)
end
- Do I need another oauth2 strategy that only needs the google calendar scope?
- How do I connect this to my Phoenix/Liveview app
First Post!
kamaroly
- I don’t think you need another strategy for google calendar. Google uses centralised authentication for all its products.
- After the authentication is successfully, you should be able to access the logged in user via
@current_userassign in liveview.
Last Post!
ashkan117
Hello! Thanks for the reply.
Maybe I could explain my problem better. In my case, I show the user a calendar. I’d want that calendar linked to multiple google calendar accounts. So in this case I’d want one user to have many google accounts connected.
Another thing that makes me think I need multiple strategies is that I’d want each account to be flexible and allow for different read/write permissions.
Popular in Questions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #elixirconf-us
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #security
- #hex









