我正在使用python-social-auth
将用户登录到我的应用程序。一切按预期工作,以创建用户帐户,登录等等。
现在我还要求用户publish_actions
的许可。当我这样做时,我会在尝试登录时看到请求步骤,因此我知道Facebook正在被要求获得此权限。但是,我无法弄清楚如何从响应中发现用户是否批准了此权限。我想存储这个,以便我只根据用户的选择公开UI的正确部分以允许或拒绝许可。
以下是我如何申请许可:
SOCIAL_AUTH_FACEBOOK_SCOPE = [ 'email', 'publish_actions' ]
对于额外的参数,我有以下内容:
SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS = {
'fields': 'id,name,email',
}
我需要将email
添加到列表中,以便将从FB返回的电子邮件值公开给我的身份验证管道。
如果我尝试将publish_actions
添加到此字段,管道将中断并取消身份验证:
SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS = {
'fields': 'id,name,email,publish_actions', # <-- this causes a failure in auth pipeline
}
如果没有将publish_actions标记为额外的参数,我就看不到任何其他数据来指示用户是否批准了该权限。我怎么发现这个?
答案 0 :(得分:0)
您可以使用用户访问令牌发出/me/permissions/
请求,该令牌会显示用户授予您应用的权限。
您还可以使登录对话框直接在直接URL(see parameter return_scopes
)中返回授予的范围 - 无论是否可以从框架内轻松添加到登录对话框,我不知道。