как использовать Auth0 с машинописными экспресс-декораторами - PullRequest
1 голос
/ 05 мая 2019

Я использую библиотеку typcript-express-decorators (ts.ed) для создания моего успокоительного API-интерфейса.Я хотел бы интегрировать его с рабочим процессом аутентификации Auth0 .Но я понятия не имею, как поступить.На страницах ts.ed приведен пример настройки аутентификации с использованием passport.js и промежуточного программного обеспечения.

Начало работы с Node.js из Auth0 показывает, что мне следует создать экспресс-промежуточное ПО (express-jwt), которое проверяет наличие действительного токена доступа пользователя, включенного в запрос.Затем я должен добавить это промежуточное ПО для каждого защищенного маршрута.

Вот снимок экрана такой установки (из раздела «Начало работы»):

enter image description here

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

Как я уже сказал, я посмотрел документацию по ts.ed,И есть только пример с passport.js (с использованием промежуточного программного обеспечения и аутентифицированного декоратора).

Я надеюсь, что ts.ed увидит этот вопрос и даст некоторые рекомендации.

1 Ответ

0 голосов
/ 14 мая 2019

Вы можете использовать любое промежуточное программное обеспечение с @Use декоратором.Например:

import { Controller, Use, Get, Req, Res, Next } from '@tsed/common'
import { Request, Response, NextFunction } from 'express'
import permitAuth from '../middlewares/permitAuth'

@Controller('/account')
export default class AccountController {
    @Get('/userInfo')
    @Use(permitAuth())
    async userInfoGet(@Req() req: Request, @Res() res: Response, @Next() next: NextFunction) {
        return res.json(req.user.toJSON())
    }
}

Также вы можете использовать его на уровне контроллера:

@Controller('/my-controller')
@Use(myMiddleware)
export default class MyController {
    ...
}

Look http://tsed.io/docs/controllers.html#custom-middleware

...