14
14
from flask import request , url_for
15
15
from flask import redirect , abort
16
16
from werkzeug import cached_property
17
+ from werkzeug .utils import import_string
17
18
from oauthlib import oauth2
18
19
from oauthlib .oauth2 import RequestValidator , Server
19
20
from oauthlib .common import to_unicode
@@ -120,8 +121,18 @@ def validate_client_id(self, client_id):
120
121
oauth._validator = MyValidator()
121
122
"""
122
123
expires_in = self .app .config .get ('OAUTH2_PROVIDER_TOKEN_EXPIRES_IN' )
124
+ token_generator = self .app .config .get (
125
+ 'OAUTH2_PROVIDER_TOKEN_GENERATOR' , None
126
+ )
127
+ if token_generator and not callable (token_generator ):
128
+ token_generator = import_string (token_generator )
129
+
123
130
if hasattr (self , '_validator' ):
124
- return Server (self ._validator , token_expires_in = expires_in )
131
+ return Server (
132
+ self ._validator ,
133
+ token_expires_in = expires_in ,
134
+ token_generator = token_generator ,
135
+ )
125
136
126
137
if hasattr (self , '_clientgetter' ) and \
127
138
hasattr (self , '_tokengetter' ) and \
@@ -142,7 +153,11 @@ def validate_client_id(self, client_id):
142
153
grantsetter = self ._grantsetter ,
143
154
)
144
155
self ._validator = validator
145
- return Server (validator , token_expires_in = expires_in )
156
+ return Server (
157
+ validator ,
158
+ token_expires_in = expires_in ,
159
+ token_generator = token_generator ,
160
+ )
146
161
raise RuntimeError ('application not bound to required getters' )
147
162
148
163
def before_request (self , f ):
0 commit comments