code: public String blockingIssueAuthorizationCode(HttpRequest req) throws OAuthException {
          AuthRequest authRequest = new AuthRequest(req);
          LOG.info("received client_id:" + authRequest.getClientId());
          if (!isActiveClientId(authRequest.getClientId()).blockingGet()) {
              throw new OAuthException(ResponseBuilder.INVALID_CLIENT_ID, HttpResponseStatus.BAD_REQUEST);
          }
          authRequest.validate();
  
          String scope = scopeService.getValidScope(authRequest.getScope(), authRequest.getClientId()).blockingGet();
          if (scope == null) {
              throw new OAuthException(ResponseBuilder.SCOPE_NOK_MESSAGE, HttpResponseStatus.BAD_REQUEST);
          }
  
          AuthCode authCode = new AuthCode(generateCode(), authRequest.getClientId(), authRequest.getRedirectUri(),
                  authRequest.getState(), scope, authRequest.getResponseType(), authRequest.getUserId());
          LOG.info("authCode: {" + authCode.getCode() + "}");
          db.storeAuthCode(authCode).blockingAwait();
  
          // return redirect URI, append param code=[Authcode]
          QueryStringEncoder enc = new QueryStringEncoder(authRequest.getRedirectUri());
          enc.addParam("code", authCode.getCode());
          return enc.toString();
      }
docs: /authorize?response_type=code&client_id=s6BhdRkqt3&state=xyz&redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb