|
|
|
@ -13,7 +13,7 @@ import {
|
|
|
|
|
TokenRepository,
|
|
|
|
|
} from './types'
|
|
|
|
|
import {HTTPError} from '../../http/HTTPError'
|
|
|
|
|
import {Awaitable, HTTPStatus, Maybe, right} from '../../util'
|
|
|
|
|
import {HTTPStatus, Maybe} from '../../util'
|
|
|
|
|
import {view} from '../../http/response/ViewResponseFactory'
|
|
|
|
|
import {SecurityContext} from '../context/SecurityContext'
|
|
|
|
|
import {redirect} from '../../http/response/RedirectResponseFactory'
|
|
|
|
@ -50,14 +50,13 @@ export class OAuth2Server extends Controller {
|
|
|
|
|
|
|
|
|
|
Route.post('/oauth2/token')
|
|
|
|
|
.alias('@oauth2:token')
|
|
|
|
|
.parameterMiddleware<OAuth2Client>(async req =>
|
|
|
|
|
right(await req.make<OAuth2Server>(OAuth2Server).getClientFromRequest(req)))
|
|
|
|
|
.passingRequest()
|
|
|
|
|
.calls<OAuth2Server>(OAuth2Server, x => x.issue)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
issue(request: Request, client: OAuth2Client): Awaitable<ResponseObject> {
|
|
|
|
|
async issue(request: Request): Promise<ResponseObject> {
|
|
|
|
|
const grant = request.safe('grant_type').in(grantTypes)
|
|
|
|
|
const client = await this.getClientFromRequest(request)
|
|
|
|
|
|
|
|
|
|
if ( grant === GrantType.Client ) {
|
|
|
|
|
return this.issueFromClient(request, client)
|
|
|
|
|