Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用laravel passport令牌传递loggon用户数据对象?_Php_Angular_Laravel_Oauth 2.0_Laravel Passport - Fatal编程技术网

Php 如何使用laravel passport令牌传递loggon用户数据对象?

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

我是新来的拉维尔和角。我正在使用Laravel框架
7.10.2
和Angular
CLI: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);
    });