mirror of
https://github.com/lkddi/nexusphp.git
synced 2026-04-19 00:01:00 +08:00
oauth provider email_claim required
This commit is contained in:
@@ -41,8 +41,8 @@ class ClientResource extends Resource
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
Forms\Components\TextInput::make('name')->label(__('label.name')),
|
||||
Forms\Components\TextInput::make('redirect')->label(__('oauth.redirect')),
|
||||
Forms\Components\TextInput::make('name')->label(__('label.name'))->required(),
|
||||
Forms\Components\TextInput::make('redirect')->label(__('oauth.redirect'))->required(),
|
||||
Forms\Components\Radio::make('skips_authorization')
|
||||
->options(self::getYesNoOptions())
|
||||
->inline()
|
||||
|
||||
@@ -68,12 +68,14 @@ class ProviderResource extends Resource
|
||||
->label(__('oauth.id_claim'))
|
||||
->required()
|
||||
,
|
||||
Forms\Components\TextInput::make('email_claim')
|
||||
->label(__('oauth.email_claim'))
|
||||
->required()
|
||||
,
|
||||
Forms\Components\TextInput::make('username_claim')
|
||||
->label(__('oauth.username_claim'))
|
||||
,
|
||||
Forms\Components\TextInput::make('email_claim')
|
||||
->label(__('oauth.email_claim'))
|
||||
,
|
||||
|
||||
Forms\Components\TextInput::make('level_claim')
|
||||
->label(__('oauth.level_claim'))
|
||||
,
|
||||
|
||||
@@ -93,8 +93,16 @@ class OauthController extends Controller
|
||||
if (empty($providerUserId)) {
|
||||
throw new NexusException(nexus_trans('oauth.get_provider_user_id_error', ['id_claim' => $provider->id_claim]));
|
||||
}
|
||||
$providerUsername = data_get($userInfo, $provider->username_claim);
|
||||
$providerEmail = data_get($userInfo, $provider->email_claim);
|
||||
if (empty($providerEmail)) {
|
||||
throw new NexusException(nexus_trans('oauth.get_provider_email_error', ['email_claim' => $provider->email_claim]));
|
||||
}
|
||||
$sameEmailUser = User::query()->where('email', $providerEmail)->first();
|
||||
if ($sameEmailUser) {
|
||||
//login to bind is better, not implement this time
|
||||
throw new NexusException(nexus_trans('oauth.provider_email_already_exists', ['email' => $providerEmail]));
|
||||
}
|
||||
$providerUsername = data_get($userInfo, $provider->username_claim);
|
||||
$providerLevel = data_get($userInfo, $provider->level_claim);
|
||||
$homeUrl = getSchemeAndHttpHost() . "/index.php";
|
||||
$socialAccount = SocialAccount::query()
|
||||
@@ -116,13 +124,7 @@ class OauthController extends Controller
|
||||
throw new NexusException(nexus_trans("oauth.provider_level_not_allowed", ['level_limit' => $provider->level_limit]));
|
||||
}
|
||||
}
|
||||
if ($providerEmail) {
|
||||
$sameEmailUser = User::query()->where('email', $providerEmail)->first();
|
||||
if ($sameEmailUser) {
|
||||
//login to bind is better, not implement this time
|
||||
throw new NexusException(nexus_trans('oauth.provider_email_already_exists', ['email' => $providerEmail]));
|
||||
}
|
||||
}
|
||||
|
||||
$newUser = $this->createUser($providerUsername, $providerEmail);
|
||||
$socialAccountData = [
|
||||
'user_id' => $newUser->id,
|
||||
|
||||
@@ -26,4 +26,5 @@ return [
|
||||
'get_provider_level_error' => 'Unable to get user level via field :level_claim',
|
||||
'provider_level_not_ allowed' => 'Only users with level :level_limit or above are allowed to log in',
|
||||
'provider_email_already_exists' => 'Email: :email is already in use',
|
||||
'get_provider_email_error' => 'Unable to get user email via field :email_claim',
|
||||
];
|
||||
|
||||
@@ -26,4 +26,5 @@ return [
|
||||
'get_provider_level_error' => '无法通过字段 :level_claim 获取用户等级',
|
||||
'provider_level_not_allowed' => '仅允许 :level_limit 或以上等级的用户登录',
|
||||
'provider_email_already_exists' => '邮箱::email 已经被使用',
|
||||
'get_provider_email_error' => '无法通过字段 :email_claim 获取用户邮箱',
|
||||
];
|
||||
|
||||
@@ -26,4 +26,5 @@ return [
|
||||
'get_provider_level_error' => '無法通過字段 :level_claim 獲取用戶等級',
|
||||
'provider_level_not_allowed' => '僅允許 :level_limit 或以上等級的用戶登錄',
|
||||
'provider_email_already_exists' => '郵箱::email 已經被使用',
|
||||
'get_provider_email_error' => '無法通過字段 :email_claim 獲取用戶郵箱',
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user