store id_token

This commit is contained in:
simon lehericey 2024-03-18 10:35:41 +01:00
parent c1171cfd8b
commit 31b84fd770
3 changed files with 9 additions and 7 deletions

View file

@ -19,22 +19,22 @@ class AgentConnect::AgentController < ApplicationController
end
def callback
user_info = AgentConnectService.user_info(params[:code], cookies.encrypted[NONCE_COOKIE_NAME])
user_info, id_token = AgentConnectService.user_info(params[:code], cookies.encrypted[NONCE_COOKIE_NAME])
cookies.encrypted[NONCE_COOKIE_NAME] = nil
instructeur = Instructeur.find_by(agent_connect_id: user_info['sub'])
if instructeur.nil?
instructeur = Instructeur.find_by(users: { email: santized_email(user_info) })
instructeur&.update(agent_connect_id: user_info['sub'])
end
if instructeur.nil?
user = User.create_or_promote_to_instructeur(santized_email(user_info), Devise.friendly_token[0, 20])
instructeur = user.instructeur
instructeur.update(agent_connect_id: user_info['sub'])
end
instructeur.update(agent_connect_id: user_info['sub'], agent_connect_id_token: id_token)
aci = AgentConnectInformation.find_or_initialize_by(instructeur:)
aci.update(user_info.slice('given_name', 'usual_name', 'email', 'sub', 'siret', 'organizational_unit', 'belonging_population', 'phone'))

View file

@ -35,9 +35,7 @@ class AgentConnectService
nonce: nonce
)
access_token
.userinfo!
.raw_attributes
[access_token.userinfo!.raw_attributes, access_token.id_token]
end
private