Hom*_*... 6 outlook oauth-2.0 office365 office365api office365-restapi
我按照这篇文章http://dev.office.com/code-samples-detail/2142和Ruby来获取用户的电子邮件地址.这是代码:
# Parses an ID token and returns the user's email
def get_email_from_id_token(id_token)
# JWT is in three parts, separated by a '.'
token_parts = id_token.split('.')
# Token content is in the second part
encoded_token = token_parts[1]
# It's base64, but may not be padded
# Fix padding so Base64 module can decode
leftovers = token_parts[1].length.modulo(4)
if leftovers == 2
encoded_token += '=='
elsif leftovers == 3
encoded_token += '='
end
# Base64 decode (urlsafe version)
decoded_token = Base64.urlsafe_decode64(encoded_token)
# Load into a JSON object
jwt = JSON.parse(decoded_token)
# Email is in the 'preferred_username' field
email = jwt['preferred_username']
endRun Code Online (Sandbox Code Playgroud)
这个功能很好用,我可以得到用户的电子邮件地址.但今天,这个功能仍然可以正常工作,但JSON我不再包含用户的电子邮件地址.
有人能帮助我吗?我想获得用户的电子邮件地址.谢谢 !
Jas*_*ton 10
Azure部署了对v2应用程序模型的重大更改,并且您不再默认获取用户信息.
你可以在这里阅读所有相关内容:https://azure.microsoft.com/en-us/documentation/articles/active-directory-v2-preview-oidc-changes/,但总结一下:
openid范围内使用,给你的用户的基本个人资料信息.profile范围以访问该信息对于该示例,找到这个位:
# Scopes required by the app
SCOPES = [ 'openid',
'https://outlook.office.com/mail.read' ]
Run Code Online (Sandbox Code Playgroud)
并将其更改为:
# Scopes required by the app
SCOPES = [ 'openid',
'profile',
'https://outlook.office.com/mail.read' ]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1085 次 |
| 最近记录: |