我跟着this tutorial和已经得到的地步,我解码返回的标记,并提取电子邮件地址(应存储在preferred_username属性)即,下面的代码:的OAuth2令牌不包含preffered_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"
}
快速格兰ce在the spec表示我从Office 365获得正确的对象,因为preferred_username被提及为潜在的声明,但它不在我回来的对象中。
这是可能的我没有调用get_token函数与正确的参数,但the documentation for the library is pretty sparse,所以我真的不知道。
I have raised an issue on Github.
这是在Office 365结束一个错误,本教程的错误,还是我做错了自己?
你可以我们'fetch'。更多信息http://ruby-doc.org/core-2.2.0/Hash.html#method-i-fetch – devanand