(app, use_cache=False, lazy=False)
| 224 | |
| 225 | |
| 226 | def create_resource_server(app, use_cache=False, lazy=False): |
| 227 | if use_cache: |
| 228 | cache = SimpleCache() |
| 229 | exists_nonce = create_cache_exists_nonce_func(cache) |
| 230 | else: |
| 231 | |
| 232 | def exists_nonce(nonce, timestamp, client_id, oauth_token): |
| 233 | q = db.session.query(TimestampNonce.nonce).filter_by( |
| 234 | nonce=nonce, |
| 235 | timestamp=timestamp, |
| 236 | client_id=client_id, |
| 237 | ) |
| 238 | if oauth_token: |
| 239 | q = q.filter_by(oauth_token=oauth_token) |
| 240 | rv = q.first() |
| 241 | if rv: |
| 242 | return True |
| 243 | |
| 244 | tn = TimestampNonce( |
| 245 | nonce=nonce, |
| 246 | timestamp=timestamp, |
| 247 | client_id=client_id, |
| 248 | oauth_token=oauth_token, |
| 249 | ) |
| 250 | db.session.add(tn) |
| 251 | db.session.commit() |
| 252 | return False |
| 253 | |
| 254 | def query_client(client_id): |
| 255 | return Client.query.filter_by(client_id=client_id).first() |
| 256 | |
| 257 | def query_token(client_id, oauth_token): |
| 258 | return TokenCredential.query.filter_by( |
| 259 | client_id=client_id, oauth_token=oauth_token |
| 260 | ).first() |
| 261 | |
| 262 | if lazy: |
| 263 | require_oauth = ResourceProtector() |
| 264 | require_oauth.init_app(app, query_client, query_token, exists_nonce) |
| 265 | else: |
| 266 | require_oauth = ResourceProtector(app, query_client, query_token, exists_nonce) |
| 267 | |
| 268 | @app.route("/user") |
| 269 | @require_oauth() |
| 270 | def user_profile(): |
| 271 | user = current_credential.user |
| 272 | return jsonify(id=user.id, username=user.username) |
| 273 | |
| 274 | @app.route("/user-no-parens") |
| 275 | @require_oauth |
| 276 | def user_profile_no_parens(): |
| 277 | user = current_credential.user |
| 278 | return jsonify(id=user.id, username=user.username) |
searching dependent graphs…