logout not working
master
Paulo Vieira 2018-01-11 14:37:10 +00:00
parent 3e4ee18386
commit 092dcd496f
5 changed files with 206 additions and 131 deletions

View File

@ -1,39 +1,44 @@
<?php
namespace App\Http\Controllers\Auth;
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
class LoginController extends Controller
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
{
/*
|--------------------------------------------------------------------------
| 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()
public function login(Request $request)
{
$this->middleware('guest')->except('logout');
$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);
}
}
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

@ -7,7 +7,7 @@ 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','O6XUA7EQ51qEG4CCEVgUuN41lln3XXSFYbmeb2G4');
define('CLIENT_SECRET','KN0kCLNhCPFfjz8PTLqnaGU4Kn6qzu3ToRtcHIk5');
class LoginControllerAPI extends Controller
{
@ -35,6 +35,7 @@ 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);

View File

@ -1409,9 +1409,9 @@ Vue.use(__WEBPACK_IMPORTED_MODULE_1_vue_socket_io___default.a, 'http://192.168.1
var user = Vue.component('user', __webpack_require__(43));
var login = Vue.component('login', __webpack_require__(59));
var logout = Vue.component('logout', __webpack_require__(62));
var register = Vue.component('register', __webpack_require__(65));
var singleplayer_game = Vue.component('singlegame', __webpack_require__(68));
var multiplayerGame = Vue.component('multiplayergame', __webpack_require__(73));
var register = Vue.component('register', __webpack_require__(67));
var singleplayer_game = Vue.component('singlegame', __webpack_require__(70));
var multiplayerGame = Vue.component('multiplayergame', __webpack_require__(75));
var routes = [{ path: '/', redirect: '/users' }, { path: '/users', component: user }, { path: '/login', component: login }, { path: '/logout', component: logout }, { path: '/register', component: register }, { path: '/singletictactoe', component: singleplayer_game }, { path: '/multitictactoe', component: multiplayerGame }];
@ -46914,17 +46914,21 @@ if (false) {
/***/ (function(module, exports, __webpack_require__) {
var disposed = false
function injectStyle (ssrContext) {
if (disposed) return
__webpack_require__(63)
}
var normalizeComponent = __webpack_require__(1)
/* script */
var __vue_script__ = __webpack_require__(63)
var __vue_script__ = __webpack_require__(65)
/* template */
var __vue_template__ = __webpack_require__(64)
var __vue_template__ = __webpack_require__(66)
/* template functional */
var __vue_template_functional__ = false
/* styles */
var __vue_styles__ = null
var __vue_styles__ = injectStyle
/* scopeId */
var __vue_scopeId__ = null
var __vue_scopeId__ = "data-v-12a7f961"
/* moduleIdentifier (server only) */
var __vue_module_identifier__ = null
var Component = normalizeComponent(
@ -46958,6 +46962,46 @@ module.exports = Component.exports
/***/ }),
/* 63 */
/***/ (function(module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(64);
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var update = __webpack_require__(3)("9122b9c8", content, false);
// Hot Module Replacement
if(false) {
// When the styles change, update the <style> tags
if(!content.locals) {
module.hot.accept("!!../../../../node_modules/css-loader/index.js!../../../../node_modules/vue-loader/lib/style-compiler/index.js?{\"vue\":true,\"id\":\"data-v-12a7f961\",\"scoped\":true,\"hasInlineConfig\":true}!../../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./logout.vue", function() {
var newContent = require("!!../../../../node_modules/css-loader/index.js!../../../../node_modules/vue-loader/lib/style-compiler/index.js?{\"vue\":true,\"id\":\"data-v-12a7f961\",\"scoped\":true,\"hasInlineConfig\":true}!../../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./logout.vue");
if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
update(newContent);
});
}
// When the module is disposed, remove the <style> tags
module.hot.dispose(function() { update(); });
}
/***/ }),
/* 64 */
/***/ (function(module, exports, __webpack_require__) {
exports = module.exports = __webpack_require__(2)(false);
// imports
// 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
/***/ }),
/* 65 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@ -46979,34 +47023,46 @@ Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
//
/* harmony default export */ __webpack_exports__["default"] = ({
data: function data() {
return {
// null obj
};
},
methods: {
logout: function logout() {
// apagar o token da localStorage
var headers = {
headers: {
'Authorization': 'Bearer ' + localStorage.getItem('access_token')
} };
axios.post('api/logout', null, headers) // url, body, params
.then(function (response) {
// console.log(response);
if (response.status == 200) {
// tudo ok para remover o token
localStorage.remove('access_token');
console.log('Token removido');
}
}).catch(function (logoutError) {
console.log(logoutError);
});
} // end methods
} });
data: function data() {
return {
// null obj
};
},
computed: {
message: function message() {
return "Sure you want logout?";
}
},
methods: {
logout: function logout() {
console.log("estou dentro da logout function");
// apagar o token da localStorage
var logConfig = {
headers: {
'Authorization': 'Bearer ' + window.localStorage.getItem('access_token')
// 'Accept' : 'application/json',
}
};
console.log("antes do axios");
console.log(logConfig);
axios.post('api/logout', null, logConfig).then(function (response) {
if (response.status == 200) {
window.localStorage.removeItem('access_token');
console.log("Token removed");
}
console.log(response);
}).catch(function (error) {
console.log(error);
});
}
}
});
/***/ }),
/* 64 */
/* 66 */
/***/ (function(module, exports, __webpack_require__) {
var render = function() {
@ -47058,15 +47114,15 @@ if (false) {
}
/***/ }),
/* 65 */
/* 67 */
/***/ (function(module, exports, __webpack_require__) {
var disposed = false
var normalizeComponent = __webpack_require__(1)
/* script */
var __vue_script__ = __webpack_require__(66)
var __vue_script__ = __webpack_require__(68)
/* template */
var __vue_template__ = __webpack_require__(67)
var __vue_template__ = __webpack_require__(69)
/* template functional */
var __vue_template_functional__ = false
/* styles */
@ -47106,7 +47162,7 @@ module.exports = Component.exports
/***/ }),
/* 66 */
/* 68 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@ -47183,7 +47239,7 @@ Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
});
/***/ }),
/* 67 */
/* 69 */
/***/ (function(module, exports, __webpack_require__) {
var render = function() {
@ -47328,19 +47384,19 @@ if (false) {
}
/***/ }),
/* 68 */
/* 70 */
/***/ (function(module, exports, __webpack_require__) {
var disposed = false
function injectStyle (ssrContext) {
if (disposed) return
__webpack_require__(69)
__webpack_require__(71)
}
var normalizeComponent = __webpack_require__(1)
/* script */
var __vue_script__ = __webpack_require__(71)
var __vue_script__ = __webpack_require__(73)
/* template */
var __vue_template__ = __webpack_require__(72)
var __vue_template__ = __webpack_require__(74)
/* template functional */
var __vue_template_functional__ = false
/* styles */
@ -47379,13 +47435,13 @@ module.exports = Component.exports
/***/ }),
/* 69 */
/* 71 */
/***/ (function(module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(70);
var content = __webpack_require__(72);
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
@ -47405,7 +47461,7 @@ if(false) {
}
/***/ }),
/* 70 */
/* 72 */
/***/ (function(module, exports, __webpack_require__) {
exports = module.exports = __webpack_require__(2)(false);
@ -47419,7 +47475,7 @@ 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\
/***/ }),
/* 71 */
/* 73 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@ -47554,7 +47610,7 @@ Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
});
/***/ }),
/* 72 */
/* 74 */
/***/ (function(module, exports, __webpack_require__) {
var render = function() {
@ -47647,19 +47703,19 @@ if (false) {
}
/***/ }),
/* 73 */
/* 75 */
/***/ (function(module, exports, __webpack_require__) {
var disposed = false
function injectStyle (ssrContext) {
if (disposed) return
__webpack_require__(74)
__webpack_require__(76)
}
var normalizeComponent = __webpack_require__(1)
/* script */
var __vue_script__ = __webpack_require__(76)
var __vue_script__ = __webpack_require__(78)
/* template */
var __vue_template__ = __webpack_require__(87)
var __vue_template__ = __webpack_require__(89)
/* template functional */
var __vue_template_functional__ = false
/* styles */
@ -47698,13 +47754,13 @@ module.exports = Component.exports
/***/ }),
/* 74 */
/* 76 */
/***/ (function(module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(75);
var content = __webpack_require__(77);
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
@ -47724,7 +47780,7 @@ if(false) {
}
/***/ }),
/* 75 */
/* 77 */
/***/ (function(module, exports, __webpack_require__) {
exports = module.exports = __webpack_require__(2)(false);
@ -47738,14 +47794,14 @@ 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\
/***/ }),
/* 76 */
/* 78 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__lobby_vue__ = __webpack_require__(77);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__lobby_vue__ = __webpack_require__(79);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__lobby_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__lobby_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__game_tictactoe_vue__ = __webpack_require__(82);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__game_tictactoe_vue__ = __webpack_require__(84);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__game_tictactoe_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__game_tictactoe_vue__);
//
//
@ -47911,19 +47967,19 @@ Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
});
/***/ }),
/* 77 */
/* 79 */
/***/ (function(module, exports, __webpack_require__) {
var disposed = false
function injectStyle (ssrContext) {
if (disposed) return
__webpack_require__(78)
__webpack_require__(80)
}
var normalizeComponent = __webpack_require__(1)
/* script */
var __vue_script__ = __webpack_require__(80)
var __vue_script__ = __webpack_require__(82)
/* template */
var __vue_template__ = __webpack_require__(81)
var __vue_template__ = __webpack_require__(83)
/* template functional */
var __vue_template_functional__ = false
/* styles */
@ -47962,13 +48018,13 @@ module.exports = Component.exports
/***/ }),
/* 78 */
/* 80 */
/***/ (function(module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(79);
var content = __webpack_require__(81);
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
@ -47988,7 +48044,7 @@ if(false) {
}
/***/ }),
/* 79 */
/* 81 */
/***/ (function(module, exports, __webpack_require__) {
exports = module.exports = __webpack_require__(2)(false);
@ -48002,7 +48058,7 @@ 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\
/***/ }),
/* 80 */
/* 82 */
/***/ (function(module, exports) {
//
@ -48038,7 +48094,7 @@ module.exports = {
};
/***/ }),
/* 81 */
/* 83 */
/***/ (function(module, exports, __webpack_require__) {
var render = function() {
@ -48102,19 +48158,19 @@ if (false) {
}
/***/ }),
/* 82 */
/* 84 */
/***/ (function(module, exports, __webpack_require__) {
var disposed = false
function injectStyle (ssrContext) {
if (disposed) return
__webpack_require__(83)
__webpack_require__(85)
}
var normalizeComponent = __webpack_require__(1)
/* script */
var __vue_script__ = __webpack_require__(85)
var __vue_script__ = __webpack_require__(87)
/* template */
var __vue_template__ = __webpack_require__(86)
var __vue_template__ = __webpack_require__(88)
/* template functional */
var __vue_template_functional__ = false
/* styles */
@ -48153,13 +48209,13 @@ module.exports = Component.exports
/***/ }),
/* 83 */
/* 85 */
/***/ (function(module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(84);
var content = __webpack_require__(86);
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
@ -48179,7 +48235,7 @@ if(false) {
}
/***/ }),
/* 84 */
/* 86 */
/***/ (function(module, exports, __webpack_require__) {
exports = module.exports = __webpack_require__(2)(false);
@ -48193,7 +48249,7 @@ exports.push([module.i, "\n.gameseparator[data-v-d614d384]{\n border-style: s
/***/ }),
/* 85 */
/* 87 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@ -48305,7 +48361,7 @@ Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
});
/***/ }),
/* 86 */
/* 88 */
/***/ (function(module, exports, __webpack_require__) {
var render = function() {
@ -48380,7 +48436,7 @@ if (false) {
}
/***/ }),
/* 87 */
/* 89 */
/***/ (function(module, exports, __webpack_require__) {
var render = function() {

View File

@ -15,31 +15,44 @@
<script type="text/javascript">
export default {
data: function(){
data (){
return {
// null obj
}
};
},
computed: {
message(){
return "Sure you want logout?";
}
},
methods: {
logout: function() {
logout: function(){
console.log("estou dentro da logout function");
// apagar o token da localStorage
let headers = {
let logConfig = {
headers: {
'Authorization': 'Bearer ' + localStorage.getItem('access_token'),
}};
axios.post('api/logout', null, headers) // url, body, params
.then(response =>{
// console.log(response);
if(response.status == 200) { // tudo ok para remover o token
localStorage.remove('access_token');
console.log('Token removido');
}
}).catch(logoutError => {
console.log(logoutError);
});
}
} // end methods
}
'Authorization': 'Bearer ' + window.localStorage.getItem('access_token'),
// 'Accept' : 'application/json',
}
};
console.log("antes do axios");
console.log(logConfig);
axios.post('api/logout', null, logConfig)
.then(response => {
if(response.status == 200){
window.localStorage.removeItem('access_token');
console.log("Token removed");
}
console.log(response);
}).catch(error => {
console.log(error);
});
}
}
}
</script>
<style scoped>
</style>

View File

@ -4,12 +4,12 @@
@section('content')
<router-link to="/users">Users</router-link> -
@if (!Auth::user())
<router-link to="/login">Login</router-link> -
<router-link to="/register">Register</router-link> -
@else
<router-link to="/logout">Logout</router-link> -
@endif
<router-link to="/singletictactoe">SinglePlayer TicTacToe</router-link> -
<router-link to="/multitictactoe">Multiplayer TicTacToe</router-link>