MCPcopy Create free account
hub / github.com/IfcOpenShell/IfcOpenShell / login

Method login

src/bcf/bcf/v3/bcfapi.py:77–106  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

75 return resp.json()["versions"]
76
77 def login(self) -> None:
78 resp = requests.get(f"{self.baseurl}foundation/1.0/auth")
79 values = resp.json()
80 auth_endpoint = values["oauth2_auth_url"]
81 self.token_endpoint = values["oauth2_token_url"]
82
83 with http.server.HTTPServer(("", 8080), OAuthReceiver) as server:
84 state = str(uuid.uuid4())
85 query = urllib.parse.urlencode(
86 {
87 "client_id": self.client_id,
88 "response_type": "code",
89 "state": state,
90 "redirect_uri": f"http://localhost:{server.server_address[1]}/{self.redirect_subdir}",
91 }
92 )
93 if "?" in auth_endpoint:
94 webbrowser.open(f"{auth_endpoint}&{query}")
95 else:
96 webbrowser.open(f"{auth_endpoint}?{query}")
97 server.timeout = 100
98 server.handle_request()
99 if server.auth_code and server.auth_state == state: # pylint: disable=E1101
100 data = {
101 "grant_type": "authorization_code",
102 "code": server.auth_code, # pylint: disable=E1101 type:ignore
103 "redirect_uri": f"http://localhost:{server.server_address[1]}/{self.redirect_subdir}",
104 }
105 headers = self._get_access_token_headers()
106 self.set_tokens_from_response(requests.post(self.token_endpoint, data=data, headers=headers))
107
108 def get_refresh_token(self) -> None:
109 self.set_tokens_from_response(

Callers 1

get_access_tokenMethod · 0.95

Calls 5

openMethod · 0.80
getMethod · 0.45
postMethod · 0.45

Tested by

no test coverage detected