strongloop/loopback-component-oauth2

Making this work with Loopback 3.x alpha

Closed this issue · 2 comments

Hi All,

I've been trying to get this package to play nice with Loopback 3.0.0-alpha.1 but it's been a bit of a struggle.

In 3.x app.loopback.urlencoded is undefined so I've replaced it with BodyParser (https://www.npmjs.com/package/body-parser), which allowed me to actually start up the project.

After that no routes or models are actually defined inside the API. So I've added the models to my model-config.json file and used datasource.automigrate() to make sure I have the proper tables and all.

So far I've been able to get the API started without errors and migrate the models to the DB. The problem is that none of the routes are defined, so I really can't do anything with it.

Is it remotely possible to make this work with 3.x? Thanks!

To make the issue more clear, routes don't seem to work I get this error:

Unhandled error for request GET /oauth/authorize: Error: There is no method to handle GET /oauth/authorize
    at restUrlNotFound (/Users/marco/TaxiID/dispatchapi.io/api.dispatchapi.io/node_modules/loopback/node_modules/strong-remoting/lib/rest-adapter.js:345:17)
    at Layer.handle [as handle_request] (/Users/marco/TaxiID/dispatchapi.io/api.dispatchapi.io/node_modules/loopback/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/Users/marco/TaxiID/dispatchapi.io/api.dispatchapi.io/node_modules/loopback/node_modules/express/lib/router/index.js:312:13)
    at /Users/marco/TaxiID/dispatchapi.io/api.dispatchapi.io/node_modules/loopback/node_modules/express/lib/router/index.js:280:7
    at Function.process_params (/Users/marco/TaxiID/dispatchapi.io/api.dispatchapi.io/node_modules/loopback/node_modules/express/lib/router/index.js:330:12)
    at next (/Users/marco/TaxiID/dispatchapi.io/api.dispatchapi.io/node_modules/loopback/node_modules/express/lib/router/index.js:271:10)
    at jsonParser (/Users/marco/TaxiID/dispatchapi.io/api.dispatchapi.io/node_modules/loopback/node_modules/body-parser/lib/types/json.js:100:40)
    at Layer.handle [as handle_request] (/Users/marco/TaxiID/dispatchapi.io/api.dispatchapi.io/node_modules/loopback/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/Users/marco/TaxiID/dispatchapi.io/api.dispatchapi.io/node_modules/loopback/node_modules/express/lib/router/index.js:312:13)
    at /Users/marco/TaxiID/dispatchapi.io/api.dispatchapi.io/node_modules/loopback/node_modules/express/lib/router/index.js:280:7
    at Function.process_params (/Users/marco/TaxiID/dispatchapi.io/api.dispatchapi.io/node_modules/loopback/node_modules/express/lib/router/index.js:330:12)
    at next (/Users/marco/TaxiID/dispatchapi.io/api.dispatchapi.io/node_modules/loopback/node_modules/express/lib/router/index.js:271:10)
    at urlencodedParser (/Users/marco/TaxiID/dispatchapi.io/api.dispatchapi.io/node_modules/loopback/node_modules/body-parser/lib/types/urlencoded.js:88:40)
    at Layer.handle [as handle_request] (/Users/marco/TaxiID/dispatchapi.io/api.dispatchapi.io/node_modules/loopback/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/Users/marco/TaxiID/dispatchapi.io/api.dispatchapi.io/node_modules/loopback/node_modules/express/lib/router/index.js:312:13)
    at /Users/marco/TaxiID/dispatchapi.io/api.dispatchapi.io/node_modules/loopback/node_modules/express/lib/router/index.js:280:7
    at Function.process_params (/Users/marco/TaxiID/dispatchapi.io/api.dispatchapi.io/node_modules/loopback/node_modules/express/lib/router/index.js:330:12)
    at next (/Users/marco/TaxiID/dispatchapi.io/api.dispatchapi.io/node_modules/loopback/node_modules/express/lib/router/index.js:271:10)
    at /Users/marco/TaxiID/dispatchapi.io/api.dispatchapi.io/node_modules/loopback/node_modules/strong-remoting/lib/rest-adapter.js:235:5
    at Layer.handle [as handle_request] (/Users/marco/TaxiID/dispatchapi.io/api.dispatchapi.io/node_modules/loopback/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/Users/marco/TaxiID/dispatchapi.io/api.dispatchapi.io/node_modules/loopback/node_modules/express/lib/router/index.js:312:13)
    at /Users/marco/TaxiID/dispatchapi.io/api.dispatchapi.io/node_modules/loopback/node_modules/express/lib/router/index.js:280:7

Ok, I got this working now. Was a simple mistake that we kept overseeing. Endpoints registered to root rather than /api. Something with long days and more coffee 😄

What I can't get working at the moment is posting to the endpoints, I'm not sure what exactly the post body should look like and I can't seem to find any documentation on that, but maybe I'm blind hehe..

If anybody could help, that'd be awesome.