-
Notifications
You must be signed in to change notification settings - Fork 9.3k
Description
Hi. I'm trying to use the oauth2 feature with password flow from swagger 2.0 spec. I dont' know if I'm doing thing wrong or if there some missing stuff, but let me explain. This is my spec:
swagger: '2.0'
info:
title: BakPak API
description: BakPak server API
version: '1.0.0'
host: localhost:5000
basePath: /api/v1
schemes:
- http
- https
consumes:
- application/json
produces:
- application/json
securityDefinitions:
basicPassword:
type: oauth2
flow: password
tokenUrl: http://localhost:5000/api/v1/token
scopes:
s1: Scope 1
s2: Scope 2
paths:
/token:
get:
tags:
- auth
summary: Get an authentication token
description: Get an authentication token
operationId: GetToken
responses:
'200':
description: ""
default:
description: Operation failed.
/test:
get:
summary: Test endpoint
description: Test endpoint
responses:
'200':
description: ""
default:
description: Operation failed.
security:
- basicPassword:
- s1
- s2
/user:
post:
tags:
- user
summary: Add a user
description: Add a user
operationId: AddUser
parameters:
- name: body
in: body
description: Type can be `bp`, `facebook` or `google`.
schema:
$ref: '#/definitions/Credentials'
responses:
'200':
description: ""
default:
description: Operation failed.
definitions:
Credentials:
properties:
type:
type: string
username:
type: string
password:
type: string
token:
type: string
I have a /test endpoint just to test oauth2. I remove the comment in index.html to enable oauth2 flow:
initOAuth({
clientId: "your-client-id",
realm: "your-realms",
appName: "your-app-name"
});
When I click on the "on/off" button to authorize, a new windows browser is opened with the following url http://localhost:5000/swagger-ui/null&redirect_uri=http://localhost:5000/swagger-ui/o2c.html&realm=your-realms&client_id=your-client-id&scope=s1,s2.
Note the null in the url. It is normal? I'm not super familiar with every aspect of oauth, but I was expecting a popup for username/password and somehow receiving at some endpoint a POST with a
application/x-www-form-urlencoded in the request body like this:
grant_type=password&username=johndoe&password=A3ddj3w