如何解决使用用户名和密码无法通过Azure AD OAuth2.0 ROPC流获得刷新令牌和id_token
我正在将ROPC Flow与用户详细信息和客户端详细信息一起使用,以获取访问令牌和刷新令牌。但是我只获得访问令牌,并且它会在1小时后过期。
我的前端应用程序具有登录窗口,我们在其中提供AD用户凭据,这会发出发布请求并获得成功验证的FE。
我有2个问题:
-
使用http:// localhost:3000进行用户登录请求时出现CORS问题,并且具有access-control-allow-origin标头错误。
-
我想获取刷新令牌以继续App登录或将访问令牌的生命周期设置为一天。
请求:
test.next();
响应:
// Line breaks and spaces are for legibility only. This is a public client,so no secret is required.
POST {tenant}/oauth2/v2.0/token
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&scope=user.read%20openid%20profile%20offline_access
&username=MyUsername@myTenant.com
&password=SuperS3cret
&grant_type=password
解决方法
请求令牌时,您需要在范围参数中添加 offline_access 和 openid ,尝试添加它们,您将获得 id令牌和刷新令牌。
更新:
您的应用程序将需要一个后端,该后端将提取数据并将其返回到前端。因此,请尝试从后端调用令牌终结点。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。