首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Laravel passport用于不同的表,而不是'users‘

Laravel passport用于不同的表,而不是'users‘
EN

Stack Overflow用户
提问于 2019-10-22 22:20:10
回答 1查看 4.2K关注 0票数 4

我目前正在使用Laravel Passport开发多身份验证,所以这个应用程序将有用户和设备,当我尝试注册设备时,它会将其保存到设备数据库中,如果我尝试登录,它会给我持有者令牌。但现在我想通过令牌获得用户中间件'auth:api‘或其他方式来获取设备信息,但令牌似乎存储在oauth中_访问_令牌表和用户_id .So除了用户之外,有没有办法为其他表使用laravel passport?谢谢?

下面是我为Devices编写的代码:

代码语言:javascript
复制
'datetime',
    ];


}

设备控制器:

代码语言:javascript
复制
query('name'))->get()) > 0)
            return response()->json(['name has already been taken'],500);



        $request->validate([
            'name' => 'required|string',
            'password' => 'required|string|confirmed']);

        $device =new Device(
            [

                'name'=>$request->name,
                'password'=>bcrypt($request->password)

            ]);
        $device->save();
        return response()->json([
            'message' => 'Successfully created device!'
        ], 201);
    }

    public function login(Request $request){

        //validate the data input
        $request->validate([
            'name' => 'required|string',
            'password' => 'required|string',]);


        //attempt returns true if the user is in the database
        $credentials = request(['name', 'password']);
        if(!Auth::guard('device')->attempt($credentials))
            return response()->json([
                'message' => 'Unauthorized'
            ], 401);

        //get the device
        $device = $request->user('device');

        //create token  PAT
        $tokenResult = $device->createToken('Personal Access Token');
        $token = $tokenResult->token;
        if ($request->remember_me)
            $token->expires_at = Carbon::now()->addWeeks(1);


        //save the token
        $token->save();

        return response()->json([
            'access_token' => $tokenResult->accessToken,
            'token_type' => 'Bearer',
            'expires_at' => Carbon::parse(
                $tokenResult->token->expires_at
            )->toDateTimeString()
        ],200);
    }

    public function index(Request $request)
    {

        return response()->json($request->user());
    }


}

路由:

代码语言:javascript
复制
//routes for device auth
    Route::group(
        [
            'prefix'=>'auth/device'
        ],function ()
        {
            Route::post('signup','DeviceController@signupDevice');
            Route::post('login','DeviceController@login');


         Route::group(
             [
                 'middleware'=>'device'
             ],function(){
              //all the routes that go  throught middleware
             Route::get('index','DeviceController@index');

           });
        });
EN

回答 1

Stack Overflow用户

发布于 2019-12-16 20:51:04

例如,如果您的表名为tbl_然后,您应该创建模型,如下所示,并在config/auth.php中添加模型路径

代码语言:javascript
复制
Model:
 [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\model\Users\UserModel::class,
        ],
    ],
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58506369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档