# Archived !! The functionality in this package has been included in the IdentityPython/JWTConnect-Python-OidcRP package. This package is therefor redundant and has been archived. # oidcservice #### Implementation of OIDC/OAuth2 services Oidcservice is the 3rd layer in the JWTConnect stack (cryptojwt, oidcmsg, oidcservice, oidcrp) An OIDC OP or an OAuth2 AS provides a set of services to be used by an RP/client. This package contains the necessary pieces to allow an RP/client to use those services. Each Service instance has 3 major methods: * get_request_parameters * parse_response * update_service_context #### get_request_parameters This method will return a dictionary with the information you need to do a HTTP request with your favorite HTTP client library. For instance if you use the provider info dicovery Server subclass it could look something like this: ```python import requests from oidcservice.service_context import ServiceContext from oidcservice.oidc.service import ProviderInfoDiscovery class DB(object): def __init__(self): self.db = {} def set(self, key, value): self.db[key] = value def get(self, item): try: return self.db[item] except KeyError: return None service_context = ServiceContext service_context.issuer = "https://accounts.google.com" service_context.keyjar = None service = ProviderInfoDiscovery(service_context, DB()) args = service.get_request_parameters(service_context) # Do the HTTP request http_resp = requests.request(**args) # giassuming that we got a 200 response oidc_response = service.parse_response(http_resp.text, service_context) print(oidc_response.to_dict()) ``` The output should then be a dictionary with the provider information for Google's OP.