Интеграция Auth0 с Google Home - TypeScript - PullRequest
1 голос
/ 10 июля 2019

У меня есть пример (https://github.com/actions-on-google/smart-home-nodejs/blob/master/src/auth-provider.ts) GoogleHome, работающий на GCP 100%, только без аутентификации 0Auth2, и предлагаемая служба Auth0 казалась хорошим решением, но в TypeScript нет примера.

Действия в Google настроены правильно, и я могу войти через Auth0, но не могу интегрироваться в пример.

После долгих исследований я продолжаю ходить по кругу. По крайней мере, импорт из библиотеки не завершается неудачей.

import * as express from 'express'
import * as util from 'util'
import { Headers } from 'actions-on-google'
import createAuth0Client from '@auth0/auth0-spa-js';

import * as Firestore from './firestore'

/**
 * A function that gets the user id from an access token.
 * Replace this functionality with your own OAuth provider.
 *
 * @param headers HTTP request headers
 * @return The user id
 */
export async function getUser(headers: Headers): Promise<string> {
  const authorization = headers.authorization
  const accessToken = (authorization as string).substr(7)
  return await Firestore.getUserId(accessToken)
} ...

1 Ответ

0 голосов
/ 12 июля 2019

Решено, после долгих боев я смог использовать библиотеку Auth0 в TypeScript:

import { AuthenticationClient } from 'auth0'

const auth0 = new AuthenticationClient({
   domain: '<my-domin-auth0>.auth0.com',
   clientId: '<clientId>',
   clientSecret: '<clientSecret>'
});

export async function getUser(headers: Headers): Promise<string> {       
   const authorization = headers.authorization
   const accessToken = (authorization as string).substr(7)
   const {email} = await auth0.getProfile(accessToken)
   console.log(email)
   return await Firestore.getUserId(accessToken)
}

Я настоятельно рекомендую прочитать статью @ nick-felker.

...