Twitter が OAuth 認証時 Callback URL をチェックするようになったみたい
今朝(6月13日)、ASP.NET MVC 製の自作 Web アプリで Twitter アカウントでログインしようとするとエラーが出るようになりました。
結論から。原因は、oauth/request_token 要求時、パラメーター oauth_callback の値と Twitter Apps で設定している「Callback URLs」の値が一致しない場合は、HTTP 応答は 403 (Forbidden) となり、次のメッセージが返ってくるようになったみたいです。
<?xml version="1.0" encoding="UTF-8"?>
<errors>
<error code="415">Callback URL not approved for this client application. Approved callback URLs can be adjusted in your application settings</error>
</errors>
ASP.NET MVC の Twitter 認証で、Microsoft.Owin.Security.Twitter を利用している場合、oauth_callback の値はデフォルトでは「https://example.jp/signin-twitter」のように「/signin-twitter」を付けた値となります。Twitter Apps のページでそのように設定しておく必要があります。もしくは、ASP.NET 側で TwitterAuthenticationOptions.CallbackPath の値の方を変更します。
約1ヶ月前にはアナウンスされていました。
As announced last month, today marks the beginning of callback URL whitelisting enforcement. Apps using Sign in with Twitter who have not whitelisted their URLs will experience disruption. To whitelist your URLs, follow the guidance in our May forum post. https://t.co/uWBvhX30E6
— API (@API) June 12, 2018