Как добавить параметр состояния для Uberauth в эликсире
Во время процесса oAuth хорошо установить параметр состояния, чтобы авторизовать URL для безопасности. Когда я проверял Uberauth Shopify, https://github.com/kodehort/ueberauth_shopify/blob/master/lib/ueberauth/strategy/shopify.ex#L88 он отправлялся в shopify.
Но я не понимаю, как мне нужно установить этот параметр состояния в моем приложении Phoenix, чтобы Shopify получал его. Какие-либо предложения?
2 ответа
Вы поставляете state
в URL, который вы передаете Ueberauth (таким же образом, scopes
также пройдены)
В зависимости от настроек маршрутизатора, по умолчанию:
pipeline :auth do
Ueberauth.plug "/auth"
end
scope "/auth" do
pipe_through [:browser, :auth]
get "/:provider/callback", AuthController, :callback
end
вы поставляете scopes
а также state
перенаправив вашего пользователя на указанный URL авторизации:
/auth/shopify?scopes=read_orders%20read_products&state=yourSuperSecretState
или без каких-либо областей:
/auth/shopify?state=yourSuperSecretState
С недавнего времени Ueberauth автоматически устанавливает и проверяет его по умолчанию, чтобы защитить вас от CSRF .