0

在 oAuth 过程中,最好设置状态参数来授权 url 以确保安全。当我检查 Überauth Shopify https://github.com/kodehort/ueberauth_shopify/blob/master/lib/ueberauth/strategy/shopify.ex#L88时,它被发送到shopify。

但我不明白我需要如何在我的 Phoenix 应用程序中设置这个状态参数,以便 Shopify 得到它。有什么建议么?

4

2 回答 2

1

从最近开始,Ueberauth 默认为您自动设置并检查它,以保护您免受 CSRF的影响。

于 2021-07-11T19:22:25.433 回答
0

state在传递给 Ueberauth 的 URL 中提供(以同样的方式scopes传递)

根据您的路由器设置,默认为:

pipeline :auth do
  Ueberauth.plug "/auth"
end

scope "/auth" do
  pipe_through [:browser, :auth]

  get "/:provider/callback", AuthController, :callback
end

您提供scopesstate通过将您的用户重定向到指定的身份验证 URL:

/auth/shopify?scopes=read_orders%20read_products&state=yourSuperSecretState

或没有任何范围:

/auth/shopify?state=yourSuperSecretState

于 2019-03-09T17:22:45.917 回答