awacke1 commited on
Commit
e03697a
Β·
verified Β·
1 Parent(s): 12a2cf8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +75 -14
app.py CHANGED
@@ -122,10 +122,54 @@ def get_access_token2(code, code_verifier=None):
122
  except Exception as e:
123
  st.error(f"Exception in get_access_token: {str(e)}")
124
  raise
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
125
 
 
 
 
 
 
 
126
 
 
 
 
 
 
 
 
127
 
128
- def process_query_params():
129
  # βš™οΈq= Run ArXiv search from query parameters
130
  try:
131
  query_params = st.query_params
@@ -198,20 +242,37 @@ def main():
198
  process_query_params()
199
 
200
  if 'access_token' not in st.session_state:
201
- if 'code_verifier' not in st.session_state:
202
- # Ensure the code_verifier is available
203
- st.error("Code verifier missing. Please restart the login process.")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
204
  st.stop()
205
-
206
- client_instance = get_msal_app()
207
- auth_url = client_instance.get_authorization_request_url(
208
- scopes=SCOPES,
209
- redirect_uri=REDIRECT_URI,
210
- code_challenge=code_challenge,
211
- code_challenge_method="S256"
212
- )
213
- st.write('πŸ‘‹ Please [click here]({}) to log in and authorize the app.'.format(auth_url))
214
- st.stop()
215
 
216
 
217
  # πŸš€ Sidebar navigation
 
122
  except Exception as e:
123
  st.error(f"Exception in get_access_token: {str(e)}")
124
  raise
125
+
126
+ def clear_query_params():
127
+ # Get the current URL without query parameters
128
+ base_url = st.get_page_config().base_url_path
129
+ st.write(f'<meta http-equiv="refresh" content="0; url={base_url}">', unsafe_allow_html=True)
130
+ st.stop()
131
+
132
+ def process_query_params():
133
+ query_params = st.query_params
134
+ st.write("Debug: All query parameters:", query_params)
135
+
136
+ if 'error' in query_params:
137
+ error = query_params.get('error')
138
+ error_description = query_params.get('error_description', 'No description provided')
139
+ st.error(f"Authentication Error: {error}")
140
+ st.error(f"Error Description: {urllib.parse.unquote(error_description)}")
141
+ st.stop()
142
+
143
+ if 'code' in query_params:
144
+ code = query_params.get('code')
145
+ st.write('πŸ”‘ Authorization Code Obtained:', code[:10] + '...')
146
+
147
+ try:
148
+ access_token = get_access_token(code)
149
+ st.session_state['access_token'] = access_token
150
+ st.success("Access token acquired successfully!")
151
+ # Redirect to clear query params
152
+ st.rerun()
153
+ except Exception as e:
154
+ st.error(f"Error acquiring access token: {str(e)}")
155
+ st.stop()
156
 
157
+ # Handle other query parameters as needed
158
+ if 'q' in query_params or 'query' in query_params:
159
+ query = query_params.get('q') or query_params.get('query')
160
+ if query:
161
+ # Process the query
162
+ pass
163
 
164
+ if 'action' in query_params:
165
+ action = query_params.get('action')
166
+ if action == 'show_message':
167
+ st.success("Showing a message because 'action=show_message' was found in the URL.")
168
+ elif action == 'clear':
169
+ # Instead of clearing query params, we'll redirect
170
+ st.rerun()
171
 
172
+ def process_query_params2():
173
  # βš™οΈq= Run ArXiv search from query parameters
174
  try:
175
  query_params = st.query_params
 
242
  process_query_params()
243
 
244
  if 'access_token' not in st.session_state:
245
+ query_params = st.query_params
246
+ if 'code' in query_params:
247
+ code = query_params.get('code')
248
+ st.write('πŸ”‘ Authorization Code Obtained:', code[:10] + '...')
249
+
250
+ try:
251
+ access_token = get_access_token(code)
252
+ st.session_state['access_token'] = access_token
253
+ st.success("Access token acquired successfully!")
254
+ # Instead of clearing query params, we'll redirect to remove them
255
+ st.rerun()
256
+ except Exception as e:
257
+ if "AADSTS70000" in str(e) and "code has expired" in str(e):
258
+ st.error("The authorization code has expired. Please log in again.")
259
+ st.session_state.pop('access_token', None)
260
+ # Redirect to clear query params
261
+ st.rerun()
262
+ else:
263
+ st.error(f"Error acquiring access token: {str(e)}")
264
+ st.stop()
265
+ else:
266
+ client_instance = get_msal_app()
267
+ authorization_url = client_instance.get_authorization_request_url(
268
+ scopes=SCOPES,
269
+ redirect_uri=REDIRECT_URI
270
+ )
271
+ st.write('πŸ‘‹ Please [click here]({}) to log in and authorize the app.'.format(authorization_url))
272
  st.stop()
273
+ else:
274
+ # Rest of your code for authenticated users
275
+ pass
 
 
 
 
 
 
 
276
 
277
 
278
  # πŸš€ Sidebar navigation