gpt4 book ai didi

cypress - MSAL 和 OAuth 2.0 - 以编程方式请求授权代码

转载 作者:行者123 更新时间:2023-12-04 11:47:14 25 4
gpt4 key购买 nike

目标是获得access token从 MSAL 以编程方式用于 Cypress e2e 测试。
我们使用 V2.0 API。
根据这个我首先需要得到 authorization code :https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow#request-an-authorization-code
获取 access token https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow#request-an-access-token
所以为了得到authorization code我需要做这个请求

// GET
// Line breaks for legibility only

https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&response_type=code
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&response_mode=query
&scope=openid%20offline_access%20https%3A%2F%2Fgraph.microsoft.com%2Fmail.read
&state=12345
&code_challenge=YTFjNjI1OWYzMzA3MTI4ZDY2Njg5M2RkNmVjNDE5YmEyZGRhOGYyM2IzNjdmZWFhMTQ1ODg3NDcxY2Nl
&code_challenge_method=S256
但这会返回 text/html所以我需要手动登录才能获取代码。
有什么方法可以通过编程获得 authorization code ?

最佳答案

这就是我通过创建 login 来解决它的方法命令。该命令以编程方式获取 token 并将其存储到 localStorage 中。

import 'cypress-localstorage-commands';

Cypress.Commands.add('login', () => {
const request = {
method: 'POST',
form: true,
url: `https://login.microsoftonline.com/${Cypress.config('tenantId')}/oauth2/v2.0/token`,
body: {
grant_type: 'client_credentials',
client_id: Cypress.config('clientId'),
client_secret: Cypress.config('clientSecret'),
scope: `${Cypress.config('clientId')}/.default`,
},
};

cy.request(request).then(response => cy.setLocalStorage('msal.idtoken', response.body.access_token));
});

关于cypress - MSAL 和 OAuth 2.0 - 以编程方式请求授权代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64496620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com