streamlit-oauth icon indicating copy to clipboard operation
streamlit-oauth copied to clipboard

Getting an "MissingRevokeTokenAuthMethodError" on previously working code

Open Phronesis255 opened this issue 6 months ago • 1 comments

Hi, I've been using your excellent tool for a while and it ran very smoothly and saved me a ton of trouble, but I've been getting this error every time I try to start the OAuth client for the last couple of weeks. Here is the Streamlit error description details:

────────────────────── Traceback (most recent call last) ───────────────────────

/home/adminuser/venv/lib/python3.11/site-packages/streamlit/runtime/scriptru

nner/exec_code.py:128 in exec_func_with_error_handling

/home/adminuser/venv/lib/python3.11/site-packages/streamlit/runtime/scriptru

nner/script_runner.py:669 in code_to_exec

/mount/src/nmw-test1/streamlit_app.py:127 in

124 │   if "authenticated" not in st.session_state:                         

125 │   │   st.session_state["authenticated"] = False                       

126 │   │   st.session_state["username"] = None                             

❱ 127 │ main()

128                                                                         

                                                                            

/mount/src/nmw-test1/streamlit_app.py:119 in main

116 │   │   │   st.session_state["welcome_shown"] = True                    

117 │   │                                                                   

118 │   │   # 4) Then show the main app                                     

❱ 119 │ │ main_app()

120                                                                         

121 # Run it!                                                               

122 if __name__ == "__main__":                                              

                                                                            

/mount/src/nmw-test1/streamlit_app.py:80 in main_app

 77 │                                                                       

 78 │   elif st.session_state['step'] == 'gsc_analysis':                    

 79 │   │   # <--- NEW step for GSC analysis                                

❱ 80 │ │ display_gsc_analytics()

 81 │                                                                       

 82 │   else:                                                               

 83 │   │   # Fallback to default                                           

                                                                            

/mount/src/nmw-test1/utils.py:990 in display_gsc_analytics

 987 │   │   │   st.write("passed silent auth")                             

 988 │   │   else:                                                          

 989 │   │   │   st.write("Not authenticated yet. Please log in via Google  

❱ 990 │ │ │ oauth2 = OAuth2Component(CLIENT_ID, CLIENT_SECRET, AUTHOR

 991 │   │   │   result = oauth2.authorize_button(                          

 992 │   │   │   │   name="Continue with Google",                           

 993 │   │   │   │   icon="https://www.google.com.tw/favicon.ico",          

                                                                            

/home/adminuser/venv/lib/python3.11/site-packages/streamlit_oauth/init.p

y:65 in init

/usr/local/lib/python3.11/typing.py:1289 in call

1286 │   │   if not self._inst:                                             

1287 │   │   │   raise TypeError(f"Type {self._name} cannot be instantiate  

1288 │   │   │   │   │   │   │   f"use {self.__origin__.__name__}() instea  

❱ 1289 │ │ result = self.origin(*args, **kwargs)

1290 │   │   try:                                                           

1291 │   │   │   result.__orig_class__ = self                               

1292 │   │   # Some objects raise TypeError (or something even more exotic  

                                                                            

/home/adminuser/venv/lib/python3.11/site-packages/httpx_oauth/oauth2.py:193

in init

190 │   │   │   revoke_token_endpoint is not None                           

191 │   │   │   and revocation_endpoint_auth_method is None                 

192 │   │   ):                                                              

❱ 193 │ │ │ raise MissingRevokeTokenAuthMethodError()

194 │   │                                                                   

195 │   │   self.client_id = client_id                                      

196 │   │   self.client_secret = client_secret                              

────────────────────────────────────────────────────────────────────────────────

MissingRevokeTokenAuthMethodError: Missing revocation endpoint auth method.

Phronesis255 avatar Aug 01 '25 15:08 Phronesis255

I guess your package version got updated, and there are some breaking changes from httpx-oauth issue #49.

dnplus avatar Aug 01 '25 15:08 dnplus