def create_from_request(cls: t.Type['LTI'], req: flask.Request) -> 'LTI':
params = req.form.copy()
lti_provider = models.LTIProvider.query.filter_by(
key=params['oauth_consumer_key']
).first()
if lti_provider is None:
lti_provider = models.LTIProvider(key=params['oauth_consumer_key'])
db.session.add(lti_provider)
db.session.commit()
params['lti_provider_id'] = lti_provider.id
# This is semi sensitive information so it should not end up in the JWT
# token.
launch_params = {}
for key, value in params.items():
if not key.startswith('oauth'):
launch_params[key] = value
self = cls(launch_params, lti_provider)
auth.ensure_valid_oauth(self.key, self.secret, req)
return self
评论列表
文章目录