在Firebase Cloud函数中解压OAuth2响应

在Firebase Cloud函数中解压OAuth2响应,firebase,oauth-2.0,google-cloud-functions,flutter-web,Firebase,Oauth 2.0,Google Cloud Functions,Flutter Web,由于显然没有办法实现在FlatterWeb中完成OAuth2代码大流的方法(因为),作为一种解决方法,我使用firebase cloud函数来检索令牌。基本上,redirectUrl是一个云函数,它应该捕获令牌并将其存储在firestore中。我试图识别这些字段,然后首先将它们打印到控制台。这是我的职责: export const printRequest = functions.https.onRequest((request, response) => { functions.

由于显然没有办法实现在FlatterWeb中完成OAuth2代码大流的方法(因为),作为一种解决方法,我使用firebase cloud函数来检索令牌。基本上,redirectUrl是一个云函数,它应该捕获令牌并将其存储在firestore中。我试图识别这些字段,然后首先将它们打印到控制台。这是我的职责:

export const printRequest = functions.https.onRequest((request, response) => {
    functions.logger.info("Hello logs!", { structuredData: true });
    console.log("Hello from Firebase! headers:" + request.headers + ", body:cd" + request.body + " and " + request.params);
    console.log(request.body)
    cors(request, response, async () => {
        const body = request.body;
        console.log("access token")
        console.log(body.access_token)
    })
    response.send("All done");
});
在Firebase云功能控制台中,其内容如下:

>Hello from Firebase! headers:[object Object], body:cd[object Object] and [object Object] 
>undefined
console.log(JSON.stringify(request.body));

如何解压缩服务器响应?

如果您尝试以下操作,会怎么样:

>Hello from Firebase! headers:[object Object], body:cd[object Object] and [object Object] 
>undefined
console.log(JSON.stringify(request.body));

完整示例

证明令牌只是一个URL参数,因此获取该参数只需拆分字符串即可

export const printRequest = functions.https.onRequest((request, response) => {
    let urele = request.url.split("code=")[1];
    console.log("final code " + urele.toString().split("&")[0]);
    console.log(request.read.toString);
    cors(request, response, async () => {
        const body = request.body;
        console.log(body);
    });
    response.send("All done");
});