我已经搜索了近一周的网页,我无法找到问题的解决方案。
我在azure门户上设置了一切用于身份验证的声明,并且在调试会话期间检查后确定了主体。唯一遗漏的是!我无法从下面的url中检索/获取jwt令牌。 验证显然是成功的。如果有人可以照亮我,我会很高兴的。
https://dev.azurewebsites.net/.auth/login/done#token=%7B%22authenticationToken%22%3A%22的 eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdGFibGVfc2lkIjoic2lkOjJmMDg1ZWY1NDM0MzNlZDM1MzNkYTRkMDgyNGFlY2QyIiwic3ViIjoic2lkOmZjMzhmNGExZjI2ZDI5MTdhMTQzZWMyZDMyZjAwOWIyIiwiaWRwIjoiZmFjZWJvb2siLCJ2ZXIiOiIzIiwiaXNzIjoiaHR0cHM6Ly9kZXYtZjFhZGQwNGUtZjNjZC0xMWU3LWI0ZTktOWEyMTRjZjA5M2FlLmF6dXJld2Vic2l0ZXMubmV0LyIsImF1ZCI6Imh0dHBzOi8vZGV2LWYxYWRkMDRlLWYzY2QtMTFlNy1iNGU5LTlhMjE0Y2YwOTNhZS5henVyZXdlYnNpdGVzLm5ldC8iLCJleHAiOjE1MjA1Mzc1NTUsIm5iZiI6MTUxNTM1NzQ5MH0.z0Ys8dwKO_napvy4Ihfu39mHc6zyBpJIUjSzZWj8abI %22%2C%22user%22%3A%7B%22userId%22%3A%22sid%3Afc38f4a1f26d2917a143ec2d32f009b2%22%7D%7
如果我从校长创建新令牌它正在工作,但我无法从.auth / me服务获取数据。我根本没有使用AD谷歌和Facebook进行身份验证。
答案 0 :(得分:0)
唯一遗漏的是!我无法从以下网址中检索/获取jwt令牌。
您可以对您的网址进行网址解码,然后检索您的azure移动应用后端生成的authenticationToken
属性作为针对移动应用后端的后续请求的身份验证令牌。
解码authenticationToken
jwt令牌时,我发现iss
和aud
与您的域dev.azurewebsites.net
不相符。
如果我从校长创建新令牌它正在工作,但我无法从.auth / me服务获取数据。
如果您通过浏览器登录(例如https://{your-app-name}.azurewebsites.net/.auth/login/{provider-name} e.g. facebook,google,etc.
),则在记录后您可以通过浏览器直接访问https://{your-app-name}.azurewebsites.net/.auth/me
。或者您可以将令牌与您的请求一起发送,如下所示:
GET https://{your-app-name}.azurewebsites.net/.auth/me
Header x-zumo-auth:{authenticationToken}
对于基于非Web浏览器的客户端(如移动设备),JSON Web令牌(JWT)将显示在X-ZUMO-AUTH标头中,Mobile Apps客户端SDK将为您处理。您可以关注的详细信息How authentication works in App Service。
此外,要自己生成令牌,您需要正确设置audience
,issuer
,signingKey
,claim
。您可以按照Post
控制器下的CustomAuthController
方法了解adrian hall的书Custom authentication的详细信息。
答案 1 :(得分:0)
同时我意识到我试图从错误的方向解决问题。
我试图从我写的服务器Api App服务中获取令牌。而不是像布鲁斯告诉我的那样使用客户端库之一。我错过了 Javascript / HTML 文档部分,它不在主树中,而是在Cordova下。我只看过 Cordova , Android 和 IOS 这对我不利。
现在使用以下链接,我可以使用Javascript客户端SDK从网站获取令牌!