Add email to id_token

This commit is contained in:
2022-04-15 20:34:07 +02:00
parent 03a4bbb580
commit 937343c5f9
2 changed files with 12 additions and 2 deletions

View File

@ -216,8 +216,8 @@ pub async fn token(req: HttpRequest,
clients: web::Data<ClientManager>,
app_config: web::Data<AppConfig>,
sessions: web::Data<Addr<OpenIDSessionsActor>>,
users: web::Data<Addr<UsersActor>>,
jwt_signer: web::Data<JWTSigner>) -> actix_web::Result<HttpResponse> {
// TODO : check auth challenge : https://oa.dnc.global/-fr-.html?page=unarticle&id_article=148&lang=fr
// Extraction authentication information
let authorization_header = req.headers().get("authorization");
@ -318,6 +318,12 @@ pub async fn token(req: HttpRequest,
sessions.send(openid_sessions_actor::UpdateSession(session.clone()))
.await.unwrap();
let user: Option<User> = users.send(users_actor::GetUserRequest(session.user.clone()))
.await.unwrap().0;
let user = match user {
None => return Ok(error_response(&query, "invalid_request", "User not found!")),
Some(u) => u,
};
// Generate id token
let id_token = IdToken {
@ -328,6 +334,7 @@ pub async fn token(req: HttpRequest,
issued_at: time(),
auth_time: session.auth_time,
nonce: session.nonce,
email: user.email,
};
TokenResponse {