Php 如何使用laravel passport令牌传递loggon用户数据对象?
我是新来的拉维尔和角。我正在使用Laravel框架Php 如何使用laravel passport令牌传递loggon用户数据对象?,php,angular,laravel,oauth-2.0,laravel-passport,Php,Angular,Laravel,Oauth 2.0,Laravel Passport,我是新来的拉维尔和角。我正在使用Laravel框架7.10.2和AngularCLI:8.3.26 我根据文档配置了laravel passport。现在,当用户登录我的api时,向我的angular应用发送访问令牌。如下所示(从开发者控制台复制) 这是我的laravel登录方法 class UserController extends Controller { public function login(Request $request){ $login=$reques
7.10.2
和AngularCLI:8.3.26
我根据文档配置了laravel passport。现在,当用户登录我的api时,向我的angular应用发送访问令牌。如下所示(从开发者控制台复制)
这是我的laravel登录方法
class UserController extends Controller
{
public function login(Request $request){
$login=$request->validate([
'email'=>'required',
'password'=>'required'
]);
if (!Auth::attempt($login)){
return response(['message'=>'Invalid login details.']);
}
$user=Auth::user();
$token=$user->createToken('authToken')->accessToken;
return response(['user'=>Auth::user(),'token'=>$token]);
}
现在我想把这个用户id保存在本地存储器中。但我知道这并不安全。那么可以从这个令牌发送这个用户对象吗
1) 如果可能的话,我怎么做
2) 如何在angular应用程序中读取此(表示用户对象) 这是我读取标记的角度函数
login() {
this.authService.login(this.email, this.password).subscribe(res => {
//reading token comes from api
console.log(res);
if (res.token) {
this.token = res.token;
localStorage.setItem('auth', this.token);
this.router.navigate(['tasks'],);
} else {
this.errormessage = res.message;
}
this.authService.changeProgress(true);
}, err => {
this.errormessage='Connection failed! Try again later!';
this.authService.changeProgress(true);
});
我发现了一些与此相关的类似问题。但他们不为我工作。
提前谢谢。我认为您不需要存储所有这些信息,护照可以让用户自行识别。 在我的情况下,我需要用户名显示在导航栏中,以便我使用服务获取数据,也许我可以将其存储在浏览器中,但如果本地存储中的信息仅用于显示,而不是ID或您需要发出请求的内容,则可以这样做,这是非常不安全的 因此,我的建议是,请求获取您所需的用户信息 我开始使用jwt passport,但就我所读到的内容而言,您需要密钥来解码令牌,也就是说,我相信您无法在前端对其进行解码
注意:如果有人有更多的信息评论,请我认为您不需要存储所有这些信息,passport会自动识别用户。 在我的情况下,我需要用户名显示在导航栏中,以便我使用服务获取数据,也许我可以将其存储在浏览器中,但如果本地存储中的信息仅用于显示,而不是ID或您需要发出请求的内容,则可以这样做,这是非常不安全的 因此,我的建议是,请求获取您所需的用户信息 我开始使用jwt passport,但就我所读到的内容而言,您需要密钥来解码令牌,也就是说,我相信您无法在前端对其进行解码
注意:如果有人有更多的信息注释,请“那么是否可以从此令牌发送此用户对象?”我看到
Auth::user()
对象已在'user'
中返回。但我想通过访问令牌发送此对象。不是这样的。可能吗@Faristatuconsina“那么可以从这个令牌发送这个用户对象吗?”我看到Auth::user()
对象已经在'user'
中返回。但是我想通过访问令牌发送这个对象。不是这样的。可能吗@法里斯塔拉图科西纳
login() {
this.authService.login(this.email, this.password).subscribe(res => {
//reading token comes from api
console.log(res);
if (res.token) {
this.token = res.token;
localStorage.setItem('auth', this.token);
this.router.navigate(['tasks'],);
} else {
this.errormessage = res.message;
}
this.authService.changeProgress(true);
}, err => {
this.errormessage='Connection failed! Try again later!';
this.authService.changeProgress(true);
});