我使用knpuniversity/oauth2-client-bundle
和league/oauth2-google
在我的Symfony 4 Web应用程序中使用“使用Google登录”功能连接用户。我遵循了this tuto。我在Google注册了我的应用程序。
我在knpu.oauth2.client.google
配置(config/packages/knpu_oauth2_client.yaml
文件)中设置了access_type: offline
我尝试在我的GoogleAuthenticator::getUser(League\OAuth2\Client\Token\AccessToken $credentials)
方法(它扩展了KnpU\OAuth2ClientBundle\Security\Authenticator\SocialAuthenticator
)中获取用户刷新令牌。
不幸的是,$credentials->getRefreshToken()
总是返回null
。
为什么我没有获得用户刷新令牌?
2条答案
按热度按时间l3zydbqr1#
根据文档,“刷新令牌仅提供给请求离线访问的应用程序”。因此,当示例化提供程序时,您需要设置accessType。
字符串
在knpu_oauth2_client配置中,您可以执行以下操作:
型
jexiocij2#
我也遇到了同样的问题。必须做两件事来解决这个问题:
1.)add prompt => consent强制新的同意,否则离线访问类型不会改变,如果在开始时没有配置
字符串
2.)这是行不通的:
型
相反,这:
型