I created an app with laravel
& vuejs
, for authentication i used laravel-passport
. When i create new user and try log in browser returns this error.
POST http://127.0.0.1:8000/oauth/token 401 (Unauthorized)
but it only works for one user and only for that user, when log in using that doesn't return any error it works fine.
i create new user by following controller method
public function store(Request $request)
{
$this->validate($request, [
'name'=> 'required|max:120',
'email'=> 'required|email|unique:users',
'password'=> 'required|min:6'
]);
return User::create([
'name' => $request['name'],
'email' => $request['email'],
'password' => Hash::make($request['password']),
]);
}
and the log in method,
login(){
var data = {
username: this.user.email,
password: this.user.password,
client_id: 2,
client_secret: 'wcw9GkgKMHXUnyZavawJWXgE3GhSubOADO6tKw99',
grant_type: 'password'
}
this.$store.dispatch('login',data )
.then( response =>{
this.$router.push('dashboard');
});
}
in store.js
login({ commit }, creds){
commit(LOGIN);
return new Promise((resolve) => {
setTimeout(() =>{
axios.post('/oauth/token', creds)
.then((response) =>{
Vue.auth.setToken(response.data.access_token, response.data.expires_in + Date.now());
commit(LOGIN_SUCCESS);
alert(response.data.access_token)
axios.get('api/user', { headers: {"Authorization" : 'Bearer'+' '+response.data.access_token } })
.then( response =>{
console.log('success_(store.js)',response.data.id)
axios.post('api/role', { uid: response.data.id})
.then( response =>{
console.log('success_(store.js)',response.data["0"].name)
Vue.auth.setUserRole(response.data["0"].name);
})
})
.catch( response =>{
console.log('error_', response)
})
resolve();
});
}, 5000);
});
}
any help ?
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire