如何在 Laravel 8 和 Auth0 API 中获取当前用户的 ID?
How do I get the current user's id in this Laravel 8 and Auth0 API?
我正在研究 Laravel 8 API。我使用 Auth0 进行用户注册和登录。
注册时,我需要 Auth0 返回的用户 ID(如 user_id
),以便将其插入我自己的 users table,在名为 uid
.
的专栏中
此外,一旦用户登录,我需要在 myapp.test/api/user-profile/show/
显示用户数据,为此,我还需要 user_id
.
为此,我有代码:
在routes\api.php:
Route::get('/authorization', [UserController::class, 'authorize']);
在UserController中:
public function authorize(){
$appDomain = 'https://' . config('laravel-auth0.domain');
$appClientId = config('laravel-auth0.client_id');
$appClientSecret = config('laravel-auth0.client_secret');
$appAudience = config('laravel-auth0.api_identifier');
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "$appDomain/oauth/token",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "{\"client_id\":\"$appClientId\",\"client_secret\":\"$appClientSecret\",\"audience\":\"$appAudience\",\"grant_type\":\"client_credentials\"}",
CURLOPT_HTTPHEADER => array(
"content-type: application/json"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
return "cURL Error #:" . $err;
} else {
return $response;
}
}
问题
authorize()
方法(取自 Auth0 网站上的教程),只有 returns access_token 信息但 没有 user_id
.
问题
- 如何获取当前用户的user_id?
- 我想我需要用一些东西代替
CURLOPT_URL => "$appDomain/oauth/token"
,而不是 what?
获取您可以使用的当前登录用户的ID
使用授权;
$user_id = Auth::user()->id ;
它将为您提供当前登录用户 ID。但如果您需要完整的登录用户信息,那么您可以 user
$用户=Auth::user();
请看这个社区的回答:
https://community.auth0.com/t/how-to-get-user-information-from-the-laravel-api-side/47021/3
Make a request to the Authentication API’s userinfo endpoint to get the user’s profile.
https://auth0.com/docs/api/authentication#user-profile
我正在研究 Laravel 8 API。我使用 Auth0 进行用户注册和登录。
注册时,我需要 Auth0 返回的用户 ID(如 user_id
),以便将其插入我自己的 users table,在名为 uid
.
此外,一旦用户登录,我需要在 myapp.test/api/user-profile/show/
显示用户数据,为此,我还需要 user_id
.
为此,我有代码:
在routes\api.php:
Route::get('/authorization', [UserController::class, 'authorize']);
在UserController中:
public function authorize(){
$appDomain = 'https://' . config('laravel-auth0.domain');
$appClientId = config('laravel-auth0.client_id');
$appClientSecret = config('laravel-auth0.client_secret');
$appAudience = config('laravel-auth0.api_identifier');
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "$appDomain/oauth/token",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "{\"client_id\":\"$appClientId\",\"client_secret\":\"$appClientSecret\",\"audience\":\"$appAudience\",\"grant_type\":\"client_credentials\"}",
CURLOPT_HTTPHEADER => array(
"content-type: application/json"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
return "cURL Error #:" . $err;
} else {
return $response;
}
}
问题
authorize()
方法(取自 Auth0 网站上的教程),只有 returns access_token 信息但 没有 user_id
.
问题
- 如何获取当前用户的user_id?
- 我想我需要用一些东西代替
CURLOPT_URL => "$appDomain/oauth/token"
,而不是 what?
获取您可以使用的当前登录用户的ID 使用授权; $user_id = Auth::user()->id ;
它将为您提供当前登录用户 ID。但如果您需要完整的登录用户信息,那么您可以 user
$用户=Auth::user();
请看这个社区的回答:
https://community.auth0.com/t/how-to-get-user-information-from-the-laravel-api-side/47021/3
Make a request to the Authentication API’s userinfo endpoint to get the user’s profile. https://auth0.com/docs/api/authentication#user-profile