Просмотр исходного кода

Merge pull request #2 from IamTaoChen/oidc

Add General OIDC Login Configuration
1 год назад
Родитель
Сommit
5b7fb018a4
1 измененных файлов с 13 добавлено и 0 удалено
  1. 13 0
      src/views/oauth/index.vue

+ 13 - 0
src/views/oauth/index.vue

@@ -34,6 +34,9 @@
34
     </el-card>
34
     </el-card>
35
     <el-dialog v-model="formVisible" :title="!formData.id?T('Create') :T('Update')" width="800">
35
     <el-dialog v-model="formVisible" :title="!formData.id?T('Create') :T('Update')" width="800">
36
       <el-form class="dialog-form" ref="form" :model="formData" :rules="rules" label-width="120px">
36
       <el-form class="dialog-form" ref="form" :model="formData" :rules="rules" label-width="120px">
37
+        <el-form-item label="Issuer" prop="issuer">
38
+          <el-input v-model="formData.issuer" :placeholder="formData.op === 'oidc' ? 'Required when OIDC is selected' : 'Not required unless OIDC is selected'"></el-input>
39
+        </el-form-item>
37
         <el-form-item label="ClientId" prop="client_id">
40
         <el-form-item label="ClientId" prop="client_id">
38
           <el-input v-model="formData.client_id"></el-input>
41
           <el-input v-model="formData.client_id"></el-input>
39
         </el-form-item>
42
         </el-form-item>
@@ -43,6 +46,9 @@
43
         <el-form-item label="RedirectUrl" prop="redirect_url">
46
         <el-form-item label="RedirectUrl" prop="redirect_url">
44
           <el-input v-model="formData.redirect_url"></el-input>
47
           <el-input v-model="formData.redirect_url"></el-input>
45
         </el-form-item>
48
         </el-form-item>
49
+        <el-form-item label="Scopes" prop="scopes">
50
+          <el-input v-model="formData.scopes" :placeholder="formData.op === 'oidc' ? 'Optional when OIDC is selected, default is openid,profile,email' : 'Not required unless OIDC is selected'"></el-input>
51
+        </el-form-item>
46
         <el-form-item label="op" prop="op">
52
         <el-form-item label="op" prop="op">
47
           <el-radio-group v-model="formData.op" :disabled="!!formData.id">
53
           <el-radio-group v-model="formData.op" :disabled="!!formData.id">
48
             <el-radio v-for="item in ops" :key="item.value" :value="item.value" style="display: block">
54
             <el-radio v-for="item in ops" :key="item.value" :value="item.value" style="display: block">
@@ -82,6 +88,7 @@
82
   const ops = [
88
   const ops = [
83
     { value: 'github', label: 'Github' },
89
     { value: 'github', label: 'Github' },
84
     { value: 'google', label: 'Google' },
90
     { value: 'google', label: 'Google' },
91
+    { value: 'oidc',   label: 'OIDC'   }
85
   ]
92
   ]
86
   const getList = async () => {
93
   const getList = async () => {
87
     listRes.loading = true
94
     listRes.loading = true
@@ -127,9 +134,11 @@
127
   const formData = reactive({
134
   const formData = reactive({
128
     id: 0,
135
     id: 0,
129
     op: '',
136
     op: '',
137
+    issuer: '',
130
     client_id: '',
138
     client_id: '',
131
     client_secret: '',
139
     client_secret: '',
132
     redirect_url: '',
140
     redirect_url: '',
141
+    scopes: '',
133
     auto_register: false,
142
     auto_register: false,
134
   })
143
   })
135
   const rules = {
144
   const rules = {
@@ -142,9 +151,11 @@
142
     formVisible.value = true
151
     formVisible.value = true
143
     formData.id = row.id
152
     formData.id = row.id
144
     formData.op = row.op
153
     formData.op = row.op
154
+    formData.issuer = row.issuer
145
     formData.client_id = row.client_id
155
     formData.client_id = row.client_id
146
     formData.client_secret = row.client_secret
156
     formData.client_secret = row.client_secret
147
     formData.redirect_url = row.redirect_url
157
     formData.redirect_url = row.redirect_url
158
+    formData.scopes = row.scopes
148
     formData.auto_register = row.auto_register
159
     formData.auto_register = row.auto_register
149
 
160
 
150
   }
161
   }
@@ -152,9 +163,11 @@
152
     formVisible.value = true
163
     formVisible.value = true
153
     formData.id = 0
164
     formData.id = 0
154
     formData.op = ''
165
     formData.op = ''
166
+    formData.issuer = ''
155
     formData.client_id = ''
167
     formData.client_id = ''
156
     formData.client_secret = ''
168
     formData.client_secret = ''
157
     formData.redirect_url = ''
169
     formData.redirect_url = ''
170
+    formData.scopes = ''
158
     formData.auto_register = false
171
     formData.auto_register = false
159
   }
172
   }
160
   const form = ref(null)
173
   const form = ref(null)