@@ -1109,7 +1109,7 @@ def issue_status():
11091109 session_id = request .values ["sessionId" ]
11101110 try :
11111111 session = session_ids [session_id ]
1112- except :
1112+ except KeyError :
11131113 return {
11141114 "status" : "fail" ,
11151115 "reason" : "no issuance session found" ,
@@ -1138,77 +1138,32 @@ def create_qr_code(credential_offer_URI: str, credential_offer) -> tuple[str, st
11381138
11391139@oidc .route ("/credential_offer" , methods = ["GET" , "POST" ])
11401140def credentialOffer ():
1141- credentialsSupported = oidc_metadata ["credential_configurations_supported" ]
1142- auth_choice = request .form .get ("Authorization Code Grant" )
1143- form_keys = request .form .keys ()
1144- credential_offer_URI = request .form .get ("credential_offer_URI" )
1145-
11461141 values = request .values
1147- if 'sessionId' in values and 'credentialType' in values :
1148- session_id = values ["sessionId" ]
1149- credential_type = values ["credentialType" ]
1150-
1151- session_ids .update (
1152- {
1153- session_id : {
1154- "expires" : datetime .now () + timedelta (minutes = 60 )}
1155- },
1156- )
1157- url = os .environ .get ('SERVICE_URL' )
1158- credential_offer = {
1159- "credential_issuer" : cfgservice .service_url [:- 1 ],
1160- "credential_configuration_ids" : [credential_type ,],
1161- "grants" : {
1162- "authorization_code" : {}},
1163- }
1164-
1165- _ , qr_img_base64 = create_qr_code (url , credential_offer )
1142+ session_id = values ["sessionId" ]
1143+ credential_type = values ["credentialType" ]
11661144
1167- return {
1168- "qr" : qr_img_base64 ,
1169- "sessionId" : session_id ,
1170- }, 200
1171-
1172- elif "proceed" in form_keys :
1173-
1174- form = list (form_keys )
1175- form .remove ("proceed" )
1176- form .remove ("credential_offer_URI" )
1177- form .remove ("Authorization Code Grant" )
1178- all_exist = all (credential in credentialsSupported for credential in form )
1179-
1180- if all_exist :
1181- credentials_id = form
1182- session ["credentials_id" ] = credentials_id
1183- credentials_id_list = json .dumps (form )
1184- if auth_choice == "pre_auth_code" :
1185- session ["credential_offer_URI" ] = credential_offer_URI
1186- return redirect (
1187- url_for ("preauth.preauthRed" , credentials_id = credentials_id_list )
1188- )
1189-
1190- else :
1191- credential_offer = {
1192- "credential_issuer" : cfgservice .service_url [:- 1 ],
1193- "credential_configuration_ids" : credentials_id ,
1194- "grants" : {
1195- "authorization_code" : {}},
1196- }
1197- uri , qr_img_base64 = create_qr_code (credential_offer_URI , credential_offer )
1198-
1199- wallet_url = cfgservice .wallet_test_url + "credential_offer"
1200-
1201- return render_template (
1202- "openid/credential_offer_qr_code.html" ,
1203- wallet_dev = wallet_url
1204- + "?credential_offer="
1205- + json .dumps (credential_offer ),
1206- url_data = uri ,
1207- qrcode = qr_img_base64 ,
1208- )
1145+ session_ids .update (
1146+ {
1147+ session_id : {
1148+ "expires" : datetime .now () + timedelta (minutes = 60 )}
1149+ },
1150+ )
12091151
1152+ if credential_type == "pid" :
1153+ credential_id = "eu.europa.ec.eudi.pid_mdoc"
1154+ elif credential_type == "pid_jwt" :
1155+ credential_id = "eu.europa.ec.eudi.pid_jwt_vc_json"
12101156 else :
1211- return redirect (cfgservice .service_url + "credential_offer_choice" )
1157+ return "Credential type not found" , 400
1158+
1159+ credential_offer = {
1160+ "credential_issuer" : cfgservice .service_url [:- 1 ],
1161+ "credential_configuration_ids" : [credential_id ,],
1162+ "grants" : {
1163+ "authorization_code" : {}
1164+ },
1165+ "issuer_state" : str (uuid .uuid4 ()),
1166+ }
12121167
12131168
12141169""" @oidc.route("/testgetauth", methods=["GET"])
0 commit comments