如何使用`Laravel Passport`获取`Android`应用程序的客户ID和客户机密

时间:2018-07-16 12:20:08

标签: android laravel-5 laravel-passport

首次登录应用程序后,如何使用Android获取Laravel-passport应用程序的客户端ID和客户端密码?

1 个答案:

答案 0 :(得分:1)

好的。假设您已经在应用程序中成功安装了laravel通行证软件包,并且还已经完成了迁移,现在您必须在项目中运行以下命令:

php artisan passport:install

您将得到以下结果:

Personal access client created successfully.
Client ID: 1
Client Secret: ISm7iWZXIqF9a0Hv0ciMK3LHeJcNoQZv5dIlScfRa
Password grant client created successfully.
Client ID: 2
Client Secret: oljCiGWT50uyekGPSCOBGyqmC0mzXe5BHabVayjOa

您要验证用户身份,因此需要密码grant_client 现在测试是否要测试它打开邮递员或ARC(Advance Rest Client)

http://127.0.0.1:8000/oauth/token --POST Request

现在,在Json Body中添加以下字段:

{
    "grant_type": "password",
    "client_id": 2,
    "client_secret": "oljCiGWT50uyekGPSCOBGyqmC0mzXe5BHabVayjOa",
    "username": "user@email.com",
    "password": "userpassword"
}

现在发送请求,如果请求成功,您将得到如下结果:

{
    "token_type": "Bearer",
    "expires_in": 31536000,
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6ImU2ZDIxZTA5MzdkZTdmNWZkMGY0NGU4YmNmMDFjNzdmZjEwMmViYjgwYTdjYjk0N2NkZTI4N2MzNjYyZThmNjMwYWJjNWJmNDYwOTM3ZDM2In0.eyJhdWQiOiIyIiwianRpIjoiZTZkMjFlMDkzN2RlN2Y1ZmQwZjQ0ZThiY2YwMWM3N2ZmMTAyZWJiODBhN2NiOTQ3Y2RlMjg3YzM2NjJlOGY2MzBhYmM1YmY0NjA5MzdkMzYiLCJpYXQiOjE1MzE3NDUwMzYsIm5iZiI6MTUzMTc0NTAzNiwiZXhwIjoxNTYzMjgxMDM2LCJzdWIiOiIxIiwic2NvcGVzIjpbXX0.Mx6UWy37zXWSmNLybXbblXdemAji3jpzkY7DPnlZa_EIBWYeB3VJpbbsPAg4oOCi-VH3K9AOkZ4V7Ft5ka6ZBTiVPx45jBfCmRPZ99UjrwEo_wXqbJ1cPOHMT5tn4EtAe54n37VEl4O1ZE3RzVVRK6H15Wh9LdjNX0D5ymIlXtWq7tIvuhwZ7ym4zFUCHpGGeXQ2XCka1q7YioigWnQJDhNXnSjBUQwDEYEkc2TbB96SAcnPdzyUsuNqvDjtJhtUQJ013om5RND4m_kvCNERdG6uFrPSAipO_sVj0POPuksxHcQIFbpos7p72sneyNv16AdH433nKlpLIR-FNGcO2JEsCC02dOOEarqkncp3SzA7Yv73i2Pq31iDhvH8WLzNqeeS44862fXJ4JINu1IAU0apuz09uc78lxZKIyA_McZKLvd5dWniU5g8XDGGcqwMWeCSCprIyOOTiWUkVXolX1Asf1iySn69Br39DTr6cU0ShrkEfVK2Km8KavQmonbIJtpICywjBtJawPlEgSCyRTKS5YRjGjGtV1w9YFLNId2brqfOBxxGXC_bonvlJBLeL-MwcWj6uI-yDJ6c622_83pPjgDJt1QpN4CNMPGOhFpk9uBd-JNLbvCuL1s7Txzs7EqYi1HniBnM_-Q_KQovh7LZEockYrFhj3VxZhI3ElI",
    "refresh_token": "def502005e028ce32e2f56c960108d679588e967f549840de2805145431c5d617d811e28807838f52a4f6ca7d0c0e393def12d42e0ee7769b07a2c0bbab3c73b2f606df2640d8833dc4b1bf4d126976d0d4bc1aa9115adc3ad83fd89db99541f76782cae43de75c6dcdcc72f9f87f025b736b7c949de8c42c0c16c40ab1916e24a3b960d72576427f0f27a4229f0f4a25cf3dafa58106e58f3e4a9a6d5b1124a0e0e121eac87580a50fbe4fd8652a894ae54b8f4a1da709e0349e50c1439eed8d19733b42cbab1a37b1188b42666a2c1dce75de8b1fac53af82960e7b12fae6309c80555061292a797cb0b3cd51d7ca897e9347953c805114c64eb2151a39b6f704ece816258fb1c9cf28f3526b5ac244966ac85f580909b8c130d16c041e2dbf6d7c62a2487cb53743e5750cebaeb66be26fa3200d306ddb89169e2e6cc2a20e0df6b774a896a365c5c3dc2dfb2122c5dba9c378218025afb94be5e5c3a076645"
}

好吧,现在解析此json并获取令牌,您就可以开始了。 如果要动态获取client_id和secret,则需要为此编写Api。这是该函数的简单示例:

   use Illuminate\Support\Facades\DB;
   use Symfony\Component\HttpFoundation\Response;

   public function get_secret_key()
   {
      $data = DB::table('oauth_clients')->get();

      return response([
           $data
       ],Response::HTTP_OK);
   }

如果只想获取client_secret,请使用以下代码:

 use Illuminate\Support\Facades\DB;
 use Symfony\Component\HttpFoundation\Response;

 public function get_secret_key()
    {
        $client = DB::table('oauth_clients')
            ->where('id','=',2)
            ->value('secret');

        return response([
            'data' => $client
        ],Response::HTTP_OK);
    }

要了解有关laravel护照认证的更多信息,请访问Laravel passport