Skip to content

Commit

Permalink
Merge pull request #195 from datasci4health/development
Browse files Browse the repository at this point in the history
Development
  • Loading branch information
santanche authored Aug 25, 2020
2 parents f76adad + 0e5f47f commit 9c7b0c2
Show file tree
Hide file tree
Showing 7 changed files with 155 additions and 66 deletions.
202 changes: 142 additions & 60 deletions src/adonisjs/app/Controllers/Http/AuthController.js
Original file line number Diff line number Diff line change
@@ -1,80 +1,162 @@
/* global use */

'use strict'

const Logger = use('Logger')

const Env = use('Env')
const axios = require('axios')
const axios = use('axios');
var FormData = use('form-data');

const { validate } = use('Validator')

const User = use('App/Models/User');

class AuthController {
create ({ view }) {

create({ view, session }){
console.log('ejijeiej')
console.log(session.all())

return view.render('registration.login', { pageTitle: 'Log in' })
}

async login ({ view, request, session, response, auth }) {
console.log(1)
try {
const params = request.all()

const messages = {
'email.required': 'Missing email',
'password.required': 'Missing password'
}

const validation = await validate(params, {
email: 'required',
password: 'required'
}, messages)
async login({ view, request, session, response, auth }) {
console.log('here')
try{
const params = request.all()

const messages = {
'email.required': 'Missing email',
'password.required': 'Missing password',
}

const validation = await validate(params, {
email: 'required',
password: 'required',
}, messages)

// * If validation fails, early returns with validation message.
if (validation.fails()) {
session
.withErrors(validation.messages())
.flashExcept(['password'])

return response.redirect('back')
}

let endpoint_url = Env.get("HARENA_MANAGER_URL") + "/api/v1/auth/login"

let bodyFormData = new FormData();
bodyFormData.append('email', params.email);
bodyFormData.append('password', params.password);
// console.log(bodyFormData.getHeaders())

var config = {
method: 'post',
url: endpoint_url,
// headers: {
// data.getHeaders()
// },
// data: bodyFormData
data: {
email: params.email,
password: params.password,
}
};
// session.clear()
console.log('aqui')
await axios(config)
// console.log('retorno')
.then(async function (endpoint_response) {
// console.log(session.all())

let response_user = endpoint_response.data
console.log("-----------------------------------------------------------------------------------------------------------")

// let user = new User()
// user.id = response_user.id
// user.email = response_user.email

// session.put('adonis-auth', response_user.adonisAuth)

// console.log(session.all())
// await auth.attempt(params.email,params.password)
await auth.loginViaId(response_user.id)
// console.log(session.all())

response.cookie('token', response_user.token)
console.log("cookies-----------------------------------------------------------------------------------------------------------")
console.log(response_user)

// console.log(response_user.token)
// console.log(response.cookies())

// console.log(response.cookie('token'))
// console.log(response.plainCookie('token'))

//yield response.sendView('index', data)
//return view.render('index', { user: user.toJSON() })


return response.route('index')
})
.catch(function (error) {
console.log(error);
});
} catch (e){
console.log(e)
}
}

// * If validation fails, early returns with validation message.
if (validation.fails()) {
session
.withErrors(validation.messages())
.flashExcept(['password'])

return response.redirect('back')
}

const endpointUrl = Env.get('HARENA_MANAGER_URL') + '/api/v2/auth/login'
async logout({ session, auth, response, request }){
console.log('aquiiiiiiiiiiiiiiiiiiii')
// console.log(request.cookies())
try{
// console.log('aqui')
// console.log(request.cookies())

var config = {
method: 'post',
url: endpointUrl,
data: {
email: params.email,
password: params.password
}
}
// console.log(request.cookie('adonis-session'))
// console.log(request.cookie('adonis-session-values'))

await axios(config)
.then(async function (endpointResponse) {

const user = endpointResponse.data
console.log('-----------------------------------------------------------------------------------------------------------')
console.log(user.token)

await auth.login(user)

// console.log(token.token)
// request.cookie("token", token.token)
console.log('login feito')
// const data = { user : 'hello world' }
response.cookie('token', user.token)
// yield response.sendView('index', data)
// return view.render('index', { user: user.toJSON() })
return response.route('index')
})
.catch(function (error) {
console.log(error)
})
} catch (e) {
console.log(e)
}
}
const endpoint_url = Env.get("HARENA_MANAGER_URL") + "/api/v1/auth/logout"
// console.log(session)

var config = {
method: 'post',
url: endpoint_url,
headers: {
Authorization: 'Bearer ' + request.cookie('token')

async logout ({ auth, response }) {
await auth.logout()
return response.route('index')
// "Cookie": "Bearer " + request.cookie("token")
// "Cookie": "adonis-session=" + request.cookie("adonis-session") +
// "; XSRF-TOKEN="+ request.cookie('XSRF-TOKEN') +
// "; adonis-session-values=" + request.cookie('adonis-session-values')
}
};

// axios.defaults.withCredentials = true
// console.log(request.cookies())
// await auth.logout()

await axios(config)
.then(async function (endpoint_response) {
// console.log('200 ok')
await auth.logout()

return response.route('index')

})
.catch(function (error) {
console.log('401 unauthorized')
console.log(error);
});
}catch (e){
// console.log(e)
}

}
}

Expand Down
4 changes: 4 additions & 0 deletions src/adonisjs/app/Models/User.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ const Hash = use('Hash')
const Model = use('Model')

class User extends Model {
static get incrementing () {
return false
}

static boot () {
super.boot()

Expand Down
2 changes: 1 addition & 1 deletion src/adonisjs/config/auth.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ module.exports = {
serializer: 'lucid',
model: 'App/Models/User',
scheme: 'session',
uid: 'login',
uid: 'email',
password: 'password'
},

Expand Down
2 changes: 1 addition & 1 deletion src/adonisjs/config/cors.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ module.exports = {
| boolean.
|
*/
credentials: false,
credentials: true,

/*
|--------------------------------------------------------------------------
Expand Down
5 changes: 3 additions & 2 deletions src/adonisjs/config/session.js
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,8 @@ module.exports = {
cookie: {
httpOnly: true,
sameSite: false,
path: '/'
path: '/',
// domain:'harena.com'
},

/*
Expand All @@ -91,5 +92,5 @@ module.exports = {
| the redis file. But you are free to define an object here too.
|
*/
redis: 'self::redis.local'
// redis: 'self::redis.local'
}
4 changes: 3 additions & 1 deletion src/adonisjs/database/migrations/1503248427885_user.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ const Schema = use('Schema')
class UserSchema extends Schema {
up () {
this.create('users', (table) => {
table.increments()
table.uuid('id')
table.primary('id')

table.string('username', 80).notNullable().unique()
table.string('email', 254).notNullable().unique()
table.string('password', 60).notNullable()
Expand Down
2 changes: 1 addition & 1 deletion src/adonisjs/resources/views/registration/login.edge
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
</div>
</div>

<button type="submit" class="btn btn-primary" role="button">Log in</button
<button type="submit" class="btn btn-primary" role="button">Log in</button>
</form>
@endcomponent
<!--
Expand Down

0 comments on commit 9c7b0c2

Please sign in to comment.