login & logout

login sempre funcionou
logout já remove o token da local-storage
logout já faz redirect para a página/component login
master
Paulo Vieira 2018-01-11 16:05:20 +00:00
parent 092dcd496f
commit fd9a6b7435
4 changed files with 67 additions and 83 deletions

View File

@ -1,44 +1,33 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
define('YOUR_SERVER_URL', 'http://badmemory.test');
// Check "oauth_clients" table for next 2 values:
define('CLIENT_ID', '2');
define('CLIENT_SECRET','KN0kCLNhCPFfjz8PTLqnaGU4Kn6qzu3ToRtcHIk5');
class LoginControllerAPI extends Controller
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
class LoginController extends Controller
{
public function login(Request $request)
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = '/home';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$http = new \GuzzleHttp\Client;
$response = $http->post(YOUR_SERVER_URL.'/oauth/token', [
'form_params' => [
'grant_type' => 'password',
'client_id' => CLIENT_ID,
'client_secret' => CLIENT_SECRET,
'username' => $request->email,
'password' => $request->password,
'scope' => ''
],
'exceptions' => false,
]);
$errorCode= $response->getStatusCode();
if ($errorCode=='200') {
return json_decode((string) $response->getBody(), true);
} else {
return response()->json(['msg'=>'User credentials are invalid'], $errorCode);
}
$this->middleware('guest')->except('logout');
}
public function logout()
{
echo "LC";
\Auth::guard('api')->user()->token()->revoke();
\Auth::guard('api')->user()->token()->delete();
return response()->json(['msg'=>'Token revoked'], 200);
}
}

View File

@ -34,11 +34,10 @@ class LoginControllerAPI extends Controller
}
public function logout()
{
echo "LCAPI";
\Auth::guard('api')->user()->token()->revoke();
\Auth::guard('api')->user()->token()->delete();
return response()->json(['msg'=>'Token revoked'], 200);
}
{
\Auth::guard('api')->user()->token()->revoke();
\Auth::guard('api')->user()->token()->delete();
return response()->json(['msg'=>'OK LCI'], 200);
}
}

View File

@ -46995,7 +46995,7 @@ exports = module.exports = __webpack_require__(2)(false);
// module
exports.push([module.i, "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", ""]);
exports.push([module.i, "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", ""]);
// exports
@ -47036,24 +47036,22 @@ Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
},
methods: {
logout: function logout() {
console.log("estou dentro da logout function");
// apagar o token da localStorage
var logConfig = {
var _this = this;
var head = {
headers: {
'Authorization': 'Bearer ' + window.localStorage.getItem('access_token')
// 'Accept' : 'application/json',
'Authorization': 'Bearer ' + window.localStorage.getItem('token'),
'Accept': 'application/json'
}
};
console.log("antes do axios");
console.log(logConfig);
axios.post('api/logout', null, logConfig).then(function (response) {
axios.post('/api/logout', null, head).then(function (response) {
if (response.status == 200) {
window.localStorage.removeItem('access_token');
window.localStorage.removeItem('token');
console.log("Token removed");
_this.$router.push('/login');
}
console.log(response);
}).catch(function (error) {
console.log(error);
});
@ -47072,7 +47070,9 @@ var render = function() {
return _c("div", { staticClass: "container" }, [
_c("div", { staticClass: "row" }, [
_c("div", { staticClass: "col-md-8 col-md-offset-2" }, [
_c("p", [_vm._v(_vm._s(_vm.message))]),
_c("h1", [_vm._v("Logout")]),
_vm._v(" "),
_c("p", [_c("em", [_vm._v(_vm._s(_vm.message))])]),
_vm._v(" "),
_c(
"div",

View File

@ -1,18 +1,18 @@
<template>
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<p>{{message}}</p>
<div class="text-left">
<button class="btn btn-primary" v-on:click="logout()">Logout</button>
<router-link class="btn btn-default" to="/users">Cancel</router-link>
</div>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h1>Logout</h1>
<p><em>{{message}}</em></p>
<div class="text-left">
<button class="btn btn-primary" v-on:click="logout()">Logout</button>
<router-link class="btn btn-default" to="/users">Cancel</router-link>
</div>
</div>
</div>
</div>
</template>
<script type="text/javascript">
export default {
data (){
@ -26,26 +26,22 @@ export default {
}
},
methods: {
logout: function(){
console.log("estou dentro da logout function");
// apagar o token da localStorage
let logConfig = {
logout() {
let head = {
headers: {
'Authorization': 'Bearer ' + window.localStorage.getItem('access_token'),
// 'Accept' : 'application/json',
}
};
console.log("antes do axios");
console.log(logConfig);
headers: {
'Authorization': 'Bearer ' + window.localStorage.getItem('token'),
'Accept': 'application/json',
},
};
axios.post('api/logout', null, logConfig)
axios.post('/api/logout', null, head)
.then(response => {
if(response.status == 200){
window.localStorage.removeItem('access_token');
window.localStorage.removeItem('token');
console.log("Token removed");
this.$router.push('/login');
}
console.log(response);
}).catch(error => {
console.log(error);
});