如何在 Python-Social-Auth 中查看用户是否批准请求的权限
How to see whether user approved requested permission in Python-Social-Auth
我正在使用 python-social-auth
让用户登录到我的 we 应用程序。创建用户帐户、登录等一切都按预期进行。
现在我也在请求用户的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 标注为额外参数,我看不到任何其他表明用户是否批准该权限的数据。我如何发现它?
您可以使用用户访问令牌提出 /me/permissions/
请求,这将向您显示用户已授予您的应用程序哪些权限。
您还可以直接在 URL (see parameter return_scopes
) 中直接将登录对话框 return 授予范围 – 无论是否可以轻松地将其添加到登录对话框中在你的框架内,我不知道。
我正在使用 python-social-auth
让用户登录到我的 we 应用程序。创建用户帐户、登录等一切都按预期进行。
现在我也在请求用户的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 标注为额外参数,我看不到任何其他表明用户是否批准该权限的数据。我如何发现它?
您可以使用用户访问令牌提出 /me/permissions/
请求,这将向您显示用户已授予您的应用程序哪些权限。
您还可以直接在 URL (see parameter return_scopes
) 中直接将登录对话框 return 授予范围 – 无论是否可以轻松地将其添加到登录对话框中在你的框架内,我不知道。