From d6df492073e39c1ccbbe5d2cafa0d2f5ddab1e92 Mon Sep 17 00:00:00 2001 From: SleepWalker Date: Wed, 27 Jul 2016 22:45:50 +0300 Subject: [PATCH] #21: support /oauth2/v1 on frontend --- src/index.js | 6 +++--- src/routes.js | 2 +- src/services/api/oauth.js | 4 ++-- src/services/authFlow/AuthFlow.js | 5 +++-- tests/components/auth/actions.test.js | 4 ++-- tests/services/authFlow/AuthFlow.functional.test.js | 2 +- tests/services/authFlow/AuthFlow.test.js | 5 +++-- 7 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/index.js b/src/index.js index 3340c73..b1e83d3 100644 --- a/src/index.js +++ b/src/index.js @@ -70,7 +70,7 @@ function stopLoading() { /* global process: false */ if (process.env.NODE_ENV !== 'production') { // some shortcuts for testing on localhost - window.testOAuth = () => location.href = '/oauth?client_id=ely&redirect_uri=http%3A%2F%2Fely.by&response_type=code&scope=minecraft_server_session'; - window.testOAuthStatic = () => location.href = '/oauth?client_id=ely&redirect_uri=static_page_with_code&response_type=code&scope=minecraft_server_session'; - window.testOAuthStaticCode = () => location.href = '/oauth?client_id=ely&redirect_uri=static_page&response_type=code&scope=minecraft_server_session'; + window.testOAuth = () => location.href = '/oauth2/v1?client_id=ely&redirect_uri=http%3A%2F%2Fely.by&response_type=code&scope=minecraft_server_session'; + window.testOAuthStatic = () => location.href = '/oauth2/v1?client_id=ely&redirect_uri=static_page_with_code&response_type=code&scope=minecraft_server_session'; + window.testOAuthStaticCode = () => location.href = '/oauth2/v1?client_id=ely&redirect_uri=static_page&response_type=code&scope=minecraft_server_session'; } diff --git a/src/routes.js b/src/routes.js index ce446ed..972fd9e 100644 --- a/src/routes.js +++ b/src/routes.js @@ -50,7 +50,7 @@ export default function routesFactory(store) { - + diff --git a/src/services/api/oauth.js b/src/services/api/oauth.js index 50c2d5c..d9eda59 100644 --- a/src/services/api/oauth.js +++ b/src/services/api/oauth.js @@ -3,7 +3,7 @@ import request from 'services/request'; export default { validate(oauthData) { return request.get( - '/api/oauth/validate', + '/api/oauth2/v1/validate', getOAuthRequest(oauthData) ).catch(handleOauthParamsValidation); }, @@ -12,7 +12,7 @@ export default { const query = request.buildQuery(getOAuthRequest(oauthData)); return request.post( - `/api/oauth/complete?${query}`, + `/api/oauth2/v1/complete?${query}`, typeof params.accept === 'undefined' ? {} : {accept: params.accept} ).catch((resp = {}) => { if (resp.statusCode === 401 && resp.error === 'access_denied') { diff --git a/src/services/authFlow/AuthFlow.js b/src/services/authFlow/AuthFlow.js index 31d4811..c46c4db 100644 --- a/src/services/authFlow/AuthFlow.js +++ b/src/services/authFlow/AuthFlow.js @@ -122,8 +122,9 @@ export default class AuthFlow { this.run('setOAuthRequest', {}); } - switch (path) { // use only first part of an url - case '/oauth': + switch (path) { + case '/oauth2/v1': + case '/oauth2': this.setState(new OAuthState()); break; diff --git a/tests/components/auth/actions.test.js b/tests/components/auth/actions.test.js index e26938c..ebb033a 100644 --- a/tests/components/auth/actions.test.js +++ b/tests/components/auth/actions.test.js @@ -56,7 +56,7 @@ describe('components/auth/actions', () => { request.get.returns(Promise.resolve(resp)); return callThunk(oAuthValidate, oauthData).then(() => { - sinon.assert.calledWith(request.get, '/api/oauth/validate'); + sinon.assert.calledWith(request.get, '/api/oauth2/v1/validate'); sinon.assert.calledWith(dispatch, setClient(resp.client)); sinon.assert.calledWith(dispatch, setOAuthRequest(resp.oAuth)); sinon.assert.calledWith(dispatch, setScopes(resp.session.scopes)); @@ -83,7 +83,7 @@ describe('components/auth/actions', () => { request.post.returns(Promise.resolve(resp)); return callThunk(oAuthComplete).then(() => { - sinon.assert.calledWithMatch(request.post, /\/api\/oauth\/complete/); + sinon.assert.calledWithMatch(request.post, /\/api\/oauth2\/v1\/complete/); sinon.assert.calledWith(dispatch, setOAuthCode({ success: true, code: '123', diff --git a/tests/services/authFlow/AuthFlow.functional.test.js b/tests/services/authFlow/AuthFlow.functional.test.js index 5e251a3..97fa468 100644 --- a/tests/services/authFlow/AuthFlow.functional.test.js +++ b/tests/services/authFlow/AuthFlow.functional.test.js @@ -96,7 +96,7 @@ describe('AuthFlow.functional', () => { redirectUri: expectedRedirect })}); - navigate('/oauth'); + navigate('/oauth2'); sinon.assert.calledThrice(flow.run); sinon.assert.calledWith(flow.run.getCall(0), 'oAuthValidate'); diff --git a/tests/services/authFlow/AuthFlow.test.js b/tests/services/authFlow/AuthFlow.test.js index edacdc0..6ad20df 100644 --- a/tests/services/authFlow/AuthFlow.test.js +++ b/tests/services/authFlow/AuthFlow.test.js @@ -176,7 +176,8 @@ describe('AuthFlow', () => { '/change-password': LoginState, '/oauth/permissions': LoginState, '/oauth/finish': LoginState, - '/oauth': OAuthState, + '/oauth2/v1': OAuthState, + '/oauth2': OAuthState, '/register': RegisterState, '/recover-password': RecoverPasswordState, '/recover-password/key123': RecoverPasswordState, @@ -226,7 +227,7 @@ describe('AuthFlow', () => { }); it('should not handle the same request twice', () => { - const path = '/oauth'; + const path = '/oauth2'; const callback = sinon.stub(); flow.handleRequest(path, () => {}, callback);