相关疑难解决方法(0)

使用Node JS对Google API进行身份验证

到目前为止,我的应用程序重定向到同意页面.用户接受,然后我使用有效的授权码重定向回localhost.根据我的理解,我需要进行另一次调用并将此代码交换为访问令牌. getAccessToken()然而,不起作用.控制台日志返回:

invalid_client
invalid_request
Run Code Online (Sandbox Code Playgroud)

请告诉我需要哪些其他信息.

这是相关的代码:

var { google } = require('googleapis');
var http = require("http");
var request = require('request');

var oauth2Client = new google.auth.OAuth2(
    '<My Client ID>',
    '<My Client Secret>',
    'http://localhost:8080'
);

exports.generateAuthCodeUrl = function () {

    const url = oauth2Client.generateAuthUrl({
        access_type: 'offline',
        scope: 'https://www.googleapis.com/auth/blogger'
    });

    return url;
};


exports.getAccessToken = function (accessCode) {
    var codeOptions = {
        code: accessCode
    }
    oauth2Client.getToken(codeOptions, function (err, tokens) {
        // Now tokens contains an access_token and an optional refresh_token. Save them. …
Run Code Online (Sandbox Code Playgroud)

javascript google-api node.js google-oauth

12
推荐指数
1
解决办法
2563
查看次数

不从身份验证代码返回刷新令牌

我正在使用来自节点的googleapis程序包来获取刷新令牌,并从前端传递的身份验证代码访问令牌,但是每次遇到以下错误时,我都会这样做。

  {      
      error: 'redirect_uri_mismatch',
      error_description: 'Bad Request' 
  }
Run Code Online (Sandbox Code Playgroud)

我知道当我们与控制台中作为回调URL传递的URL不匹配时,会出现此错误。 https://console.cloud.google.com/apis/credentials

但我已经在控制台中设置了正确的URL。仍然不确定代码有什么问题。

使用/auth从传递令牌front-endnode-server

const {
    google
} = require("googleapis");
const OAuth2 = google.auth.OAuth2;
var bodyParser = require('body-parser')

const express = require('express');
const app = express();
app.use(bodyParser.json());

app.use(function (req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    next();
});


app.use('/tokenCallback', (req, res) => {
    console.log(req);
    res.send('An alligator approaches!');
});

app.post('/auth', (req, res) => {
    runProcess(req.body.auth);
    res.send('An alligator approaches!');
});

app.listen(4300);

function runProcess(code) {

    const …
Run Code Online (Sandbox Code Playgroud)

oauth google-authentication node.js google-apis-explorer refresh-token

5
推荐指数
1
解决办法
304
查看次数