为什么OmniAuth::Strategies::Apple给我nonce_mismatch



我使用的是omniauth-apple和AppleId.auth中的Apple按钮。Omniauth返回Authentication failure! nonce_mismatch

知道为什么我一直得到这个nonce_mismatch吗?🙏

<div id="appleid-signin" data-color="black" data-border="true" data-type="sign in"></div>
<script>
AppleID.auth.init({
clientId: "app.example",
scope: "email name",
redirectURI: "https://my.ngrok.io/users/auth/apple/callback",
state: "TEST-HEX",
usePopup: false,
response_mode: "id_token",
nonce: "<%= apple_signin_nonce %>",
});
</script>

应用程序引入application_helper . rb之后/帮助/

def apple_signin_nonce
session["omniauth.nonce"] ||= SecureRandom.urlsafe_base64(16)
session["omniauth.nonce"]
end

并收到此错误

web     | Started POST "/users/auth/apple/callback" for 182.253.75.237 at 2022-06-28 10:42:23 +0800
web     | D, [2022-06-28T10:42:23.135569 #67393] DEBUG -- omniauth: (apple) Callback phase initiated.
web     | E, [2022-06-28T10:42:23.970234 #67393] ERROR -- omniauth: (apple) Authentication failure! nonce_mismatch: OmniAuth::Strategies::OAuth2::CallbackError, nonce_mismatch | nonce mismatch
web     | Processing by Users::OmniauthCallbacksController#failure as HTML
web     |   Parameters: {"state"=>"TEST-HEX", "code"=>"...(removed)...", "id_token"=>"...(removed)..."}
web     | Redirected to https://my.ngrok.io/

任何见解将不胜感激!谢谢!

这是失败的,当苹果返回一个POST时,你开始一个新的会话,所有以前的值都消失了。

相关内容

最新更新