work on jwt auth
This commit is contained in:
@@ -5,6 +5,8 @@ import { inject as service } from '@ember/service';
|
||||
export default class ApplicationAdapter extends JSONAPIAdapter {
|
||||
@service session;
|
||||
|
||||
namespace = 'api/v1';
|
||||
|
||||
@computed('session.{data.authenticated.access_token,isAuthenticated}')
|
||||
get headers() {
|
||||
let headers = {};
|
||||
@@ -15,4 +17,10 @@ export default class ApplicationAdapter extends JSONAPIAdapter {
|
||||
|
||||
return headers;
|
||||
}
|
||||
|
||||
handleResponse(status) {
|
||||
if (status === 401 && this.session.isAuthenticated) {
|
||||
this.session.invalidate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,14 +1,8 @@
|
||||
import RSVP from 'rsvp';
|
||||
import fetch from 'fetch';
|
||||
import {
|
||||
run, later, cancel
|
||||
} from '@ember/runloop';
|
||||
import {
|
||||
isEmpty
|
||||
} from '@ember/utils';
|
||||
import {
|
||||
warn
|
||||
} from '@ember/debug';
|
||||
import { run, later, cancel } from '@ember/runloop';
|
||||
import { isEmpty } from '@ember/utils';
|
||||
import { warn } from '@ember/debug';
|
||||
import BaseAuthenticator from 'ember-simple-auth/authenticators/base';
|
||||
|
||||
export default BaseAuthenticator.extend({
|
||||
@@ -248,7 +242,7 @@ export default BaseAuthenticator.extend({
|
||||
const serverRefreshTokenEndpoint = this.get('serverRefreshTokenEndpoint');
|
||||
|
||||
return new RSVP.Promise((resolve, reject) => {
|
||||
this.makeRequest(serverRefreshTokenEndpoint, data)
|
||||
this.makeRequest(serverRefreshTokenEndpoint, data, { Authorization:data["access_token"] })
|
||||
.then((response) => {
|
||||
return this._validateTokenAndScheduleRefresh(response);
|
||||
})
|
||||
|
||||
9
app/models/edition.js
Normal file
9
app/models/edition.js
Normal file
@@ -0,0 +1,9 @@
|
||||
import Model, { attr } from "@ember-data/model";
|
||||
|
||||
export default class EditionModel extends Model {
|
||||
@attr name;
|
||||
@attr theme;
|
||||
@attr status;
|
||||
@attr startDate;
|
||||
@attr endDate;
|
||||
}
|
||||
7
app/models/person.js
Normal file
7
app/models/person.js
Normal file
@@ -0,0 +1,7 @@
|
||||
import Model, { attr } from "@ember-data/model";
|
||||
|
||||
export default class PersonModel extends Model {
|
||||
@attr("string") firstname;
|
||||
@attr("string") lastname;
|
||||
@attr("date") birthday;
|
||||
}
|
||||
6
app/models/venue.js
Normal file
6
app/models/venue.js
Normal file
@@ -0,0 +1,6 @@
|
||||
import Model, { attr } from "@ember-data/model";
|
||||
|
||||
export default class VenueModel extends Model {
|
||||
@attr name;
|
||||
@attr location;
|
||||
}
|
||||
@@ -8,4 +8,10 @@ export default class Router extends EmberRouter {
|
||||
|
||||
Router.map(function() {
|
||||
this.route('login');
|
||||
this.route('authenticated', { path: '' }, function() {
|
||||
// all routes that require the session to be authenticated
|
||||
this.route('index', { path: '' });
|
||||
this.route('editions');
|
||||
this.route('venues');
|
||||
});
|
||||
});
|
||||
|
||||
10
app/routes/application.js
Normal file
10
app/routes/application.js
Normal file
@@ -0,0 +1,10 @@
|
||||
import Route from '@ember/routing/route';
|
||||
import { inject } from '@ember/service';
|
||||
|
||||
export default class ApplicationRoute extends Route {
|
||||
@inject session;
|
||||
|
||||
async beforeModel() {
|
||||
await this.session.setup();
|
||||
}
|
||||
}
|
||||
10
app/routes/authenticated/editions.js
Normal file
10
app/routes/authenticated/editions.js
Normal file
@@ -0,0 +1,10 @@
|
||||
import Route from '../authenticated';
|
||||
import { service } from '@ember/service';
|
||||
|
||||
export default class EditionsRoute extends Route {
|
||||
@service store;
|
||||
|
||||
model() {
|
||||
return this.store.findAll('edition');
|
||||
}
|
||||
}
|
||||
10
app/routes/authenticated/venues.js
Normal file
10
app/routes/authenticated/venues.js
Normal file
@@ -0,0 +1,10 @@
|
||||
import Route from '../authenticated';
|
||||
import { service } from '@ember/service';
|
||||
|
||||
export default class VenuesRoute extends Route {
|
||||
@service store;
|
||||
|
||||
model() {
|
||||
return this.store.findAll('venue');
|
||||
}
|
||||
}
|
||||
10
app/routes/login.js
Normal file
10
app/routes/login.js
Normal file
@@ -0,0 +1,10 @@
|
||||
import Route from '@ember/routing/route';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class LoginRoute extends Route {
|
||||
@service session;
|
||||
|
||||
beforeModel(transition) {
|
||||
this.get('session').prohibitAuthentication('index');
|
||||
}
|
||||
}
|
||||
5
app/templates/authenticated/editions.hbs
Normal file
5
app/templates/authenticated/editions.hbs
Normal file
@@ -0,0 +1,5 @@
|
||||
{{#each @model as |edition|}}
|
||||
<div>
|
||||
{{edition.name}}
|
||||
</div>
|
||||
{{/each}}
|
||||
5
app/templates/authenticated/index.hbs
Normal file
5
app/templates/authenticated/index.hbs
Normal file
@@ -0,0 +1,5 @@
|
||||
<h3>Liste des pages</h3>
|
||||
|
||||
<ul>
|
||||
<li><LinkTo @route="authenticated.editions">Editions</LinkTo></li>
|
||||
</ul>
|
||||
Reference in New Issue
Block a user