在 oAuth 过程中,最好设置状态参数来授权 url 以确保安全。当我检查 Überauth Shopify https://github.com/kodehort/ueberauth_shopify/blob/master/lib/ueberauth/strategy/shopify.ex#L88时,它被发送到shopify。
但我不明白我需要如何在我的 Phoenix 应用程序中设置这个状态参数,以便 Shopify 得到它。有什么建议么?
在 oAuth 过程中,最好设置状态参数来授权 url 以确保安全。当我检查 Überauth Shopify https://github.com/kodehort/ueberauth_shopify/blob/master/lib/ueberauth/strategy/shopify.ex#L88时,它被发送到shopify。
但我不明白我需要如何在我的 Phoenix 应用程序中设置这个状态参数,以便 Shopify 得到它。有什么建议么?
从最近开始,Ueberauth 默认为您自动设置并检查它,以保护您免受 CSRF的影响。
您state
在传递给 Ueberauth 的 URL 中提供(以同样的方式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