pub type GenericUserInfoClaims = UserInfoClaims<GenericClaims, CoreGenderClaim>;
- #[derive(Debug, Deserialize, Serialize, Clone)]
+#[derive(Debug, Deserialize, Serialize, Clone)]
pub struct OpenIdConfig {
pub issuer_url: String,
pub client_id: String,
pub client_key: Option<String>,
#[serde(skip_serializing_if="Option::is_none")]
pub scopes: Option<Vec<String>>,
+ #[serde(skip_serializing_if="Option::is_none")]
+ pub prompt: Option<String>,
}
pub struct OpenIdAuthenticator {
request = request.set_display(CoreAuthDisplay::Page);
- request = request.add_prompt(CoreAuthPrompt::Login);
+ match self.config.prompt.as_deref() {
+ None => { /* nothing */ },
+ Some("none") => {
+ request = request.add_prompt(CoreAuthPrompt::None);
+ }
+ Some("login") => {
+ request = request.add_prompt(CoreAuthPrompt::Login);
+ }
+ Some("consent") => {
+ request = request.add_prompt(CoreAuthPrompt::Consent);
+ }
+ Some("select_account") => {
+ request = request.add_prompt(CoreAuthPrompt::SelectAccount);
+ }
+ Some(extension) => {
+ request = request.add_prompt(CoreAuthPrompt::Extension(extension.into()));
+ }
+ }
if let Some(ref scopes) = self.config.scopes {
for scope in scopes.clone() {