Я хочу выполнить аутентификацию OAuth для Twitter с использованием облачных функций Firebase и паспорта-twitter, но время ожидания истекает - PullRequest
0 голосов
/ 20 июня 2020

Я хочу создать сервер аутентификации, который извлекает токены доступа авторизованных пользователей из ключей потребителей и секретов потребителей, чтобы управлять учетными записями Twitter, которым я разрешил аутентифицировать свое приложение.

Я написал следующий код на Firebase Cloud Функционирует для достижения sh моей цели, но время истекает, и я не вижу страницу аутентификации Twitter.

Что я сделал

  • Подтверждено, что Consumer Key задано как переменная среды.
  • Проверено, что Consumer Secret установлен как переменная среды.
  • Обновлен до плана Blaze.

Есть ли какие-либо настройки или области что может быть не так?

import * as functions from 'firebase-functions';
import * as passport from "passport";
import * as twitter from "passport-twitter";


// // Start writing Firebase Functions
// // https://firebase.google.com/docs/functions/typescript
//

require('dotenv').config()

// @ts-ignore
passport.use(new twitter.Strategy({
        consumerKey: process.env['twitter.ck'],
        consumerSecret: process.env['twitter.cs'],
        callbackURL: 'http://127.0.0.1',
        proxy: true
    },
    function(token: any, tokenSecret: any, profile: any, cb: (arg0: null, arg1: any) => any) {
        // In this example, the user's Twitter profile is supplied as the user
        // record.  In a production-quality application, the Twitter profile should
        // be associated with a user record in the application's database, which
        // allows for account linking and authentication with other identity
        // providers.
        console.log(`tkn ${token}`)
        console.log(`tknsec ${tokenSecret}`)
        console.log(`of ${JSON.stringify(profile)}`)
        return cb(null, profile);
    }));
export const helloWorld = functions.https.onRequest((request, response) => {
  response.send("Hello from Firebase!");
});

export const callback = functions.https.onRequest(((req, resp) => {
    console.log(JSON.stringify(req.params));
    resp.send('ok');
}))

export const login = functions.https.onRequest(((req, resp) => {
    console.log(JSON.stringify(req.params));
    console.log(`ck: ${ process.env['twitter.ck']}`);
    console.log(`cs: ${ process.env['twitter.cs']}`);

    return passport.authenticate('twitter');

}))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...