私はこのチュートリアルに従い、返されたトークンをデコードし、電子メール アドレス ( preferred_usernameプロパティに格納する必要があります) を抽出するところまで到達しました。つまり、次のコードです。
decoded_token = Base64.urlsafe_decode64(encoded_token)
jwt = JSON.parse(decoded_token)
email = jwt['preferred_username']
問題は、返されたオブジェクトにこのプロパティが含まれていないことです。返される内容は次のようになります。
{
"ver":"2.0",
"iss":"https://login.microsoftonline.com/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0",
"aud":"0ab6433e-84fc-469b-8c72-41f7a0241a61",
"exp":1458142389,
"iat":1458055989,
"at_hash":"0OYaLKpTTdHNBrQNOqwQ0Q",
"sub":"AAAAAAAAAAAAAAAAAAAAAC1TrOaOmvInYrFAyrQjlFI",
"tid":"9188040d-6c67-4c5b-b112-36a304b66dad"
}
仕様をざっと見てみると、Office 365 から正しいオブジェクトを取得していることがわかります。preferred_usernameは潜在的な要求として言及されていますが、取得したオブジェクトには含まれていません。
正しいパラメーターでget_token関数を呼び出していない可能性がありますが、ライブラリのドキュメントはかなりまばらなので、実際にはわかりません。
これは Office 365 側のエラーですか、チュートリアルのエラーですか、それとも自分で何か間違ったことをしていますか?