我的公司有一个Flask应用程序,它使用flask-login来处理用户登录/注销和会话。我们使用@login_required装饰器来保护视图。我们的客户通过存储在数据库中的持久用户进但是,我们希望我们公司的员工能够登录到我们客户的网站,而不会弹出他们的用户列表。我们通过CAS登录在我们自己的CAS服务器上验证我们自己的真实性,并检查用户名是否属于我们公司。
我们希望员工能够简单地登录而无需在数据库中持久存在,但烧瓶登录需要持久的用户模型。
很抱歉这里使用的话题很麻烦,但我希望这是不可理解的。
答案 0 :(得分:1)
每个授权系统都应该通过某个字段检查某个存储中的用户,并且在通常情况下会返回exist
或has permisions
。
因此,使用flask-login
,您可以使用user_loader
/ header_loader
/ request_loader
和UserMixin
与user_id
实现它。
login_required
调用*_loader
的每个请求获取UserMixin
。所以它看起来像下一个:
@login_manager.request_loader
def loader(request):
identifier = get_identifier_from_request(request)
exist = check_on_cas_server(identifier)
if not exist:
return None
user = UserMixin()
user.id = get_specified_or_random_id(identifier, exist)
return user
您可以使用https://flask-login.readthedocs.org/en/latest/找到详细信息。
答案 1 :(得分:0)
您可以编写自己的,自定义的ggplot(data, aes(x = sequence, y = accuracy, group = response,
colour = response)) +
geom_errorbar(aes(ymin = accuracy - se, ymax = accuracy + se),
width = .15, size = 0.5, position = pd) +
geom_line(aes(linetype = response), position = pd) +
geom_point(aes(shape = response), size = 2.3, position = pd) +
scale_x_discrete(name = "Task Sequence") +
scale_y_continuous(name = "Accuracy (Proportion)") +
scale_color_manual(values = c("#999999", "#E69F00")) +
facet_grid(~ age)
来处理您的特定登录需求。写一个实际上非常简单,https://medium.com/@nguyenkims/python-decorator-and-flask-3954dd186cda给出了一些关于如何创建这样的装饰器的伪代码。