Hi, am new to go language and need help or ideas as how i can write a server oauth2 to have a client authenticated.. If there is an already code or if i have to write my own then please help with the guidlines of how write it The client have to send a POST request and get authenticated and then the server respond with the 200 success.
The format of the API oauth2 in json is attached bellow. { "openapi": "3.0.0", "info": { "version": "1.PreR15.1.0", "title": "NRF OAuth2", "description": "MYSERVER OAuth2 Authorization" }, "paths": { "/oauth2/token": { "post": { "summary": "Access Token Request", "operationId": "AccessTokenRequest", "tags": [ "Access Token Request" ], "security": [ { "basic": [] } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/AccessTokenReq" } } }, "required": true }, "responses": { "200": { "description": "Successful Access Token Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccessTokenRsp" } } }, "headers": { "Cache-Control": { "$ref": "#/components/headers/cache-control" }, "Pragma": { "$ref": "#/components/headers/pragma" } } }, "400": { "description": "Error in the Access Token Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccessTokenErr" } } }, "headers": { "Cache-Control": { "$ref": "#/components/headers/cache-control" }, "Pragma": { "$ref": "#/components/headers/pragma" } } } } } } }, "components": { "securitySchemes": { "basic": { "type": "http", "scheme": "basic" } }, "headers": { "cache-control": { "required": true, "schema": { "type": "string", "enum": [ "no-store" ] } }, "pragma": { "required": true, "schema": { "type": "string", "enum": [ "no-cache" ] } } }, "schemas": { "AccessTokenReq": { "format": "x-www-form-urlencoded", "required": [ "grant_type", "nfInstanceId", "nfType", "targetNfType", "scope" ], "properties": { "grant_type": { "type": "string", "enum": [ "client_credentials" ] }, "nfInstanceId": { "$ref": "TS29571_CommonData.yaml#/components/schemas/NfInstanceId" }, "nfType": { "$ref": "TS29510_Nnrf_NFManagement.yaml#/components/schemas/NFType" }, "targetNfType": { "$ref": "TS29510_Nnrf_NFManagement.yaml#/components/schemas/NFType" }, "scope": null, "type": "string\npattern: '^([a-zA-Z0-9_]*[*]{0,1})$'" } }, "AccessTokenRsp": { "type": "object", "required": [ "access_token", "token_type" ], "properties": { "access_token": { "type": "string", "description": "JWS Compact Serialized representation of JWS signed JSON object (AccessTokenClaims)" }, "token_type": { "type": "string" }, "expires_in": { "type": "integer" }, "scope": { "type": "string", "pattern": "^([a-zA-Z0-9_]*[*]{0,1})$" } } }, "AccessTokenClaims": { "type": "object", "required": [ "issuer", "subject", "audience", "scope", "expiration" ], "properties": { "issuer": { "$ref": "TS29571_CommonData.yaml#/components/schemas/NfInstanceId" }, "subject": { "type": "string" }, "audience": { "type": "array", "items": { "$ref": "TS29571_CommonData.yaml#/components/schemas/NfInstanceId" } }, "scope": { "type": "string", "pattern": "^([a-zA-Z0-9_]*[*]{0,1})$" }, "expiration": { "type": "integer" } } }, "AccessTokenErr": { "type": "object", "required": [ "error" ], "properties": { "error": { "type": "string", "enum": [ "invalid_request", "invalid_client", "invalid_grant", "unauthorized_client", "unsupported_grant_type", "invalid_sope" ] }, "error_description": { "type": "string" }, "error_uri": { "type": "string" } } } } }, "externalDocs": { "description": "Documentation", "url": "http://www.3gpp.org/ftp/Specs/archive/29_series/29.510/" } } BR Abraham -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.