如何禁用react-social-login中LinkedIn二次登录时的自动登录
要实现每次点击LinkedIn登录按钮都要求输入凭证,核心是在LinkedIn的provider配置中添加prompt: 'login'参数,强制OAuth流程忽略已有的用户会话,重新触发登录验证。
具体代码示例如下:
import { SocialLogin } from 'react-social-login'; const LinkedInLoginComponent = () => { const handleLoginSuccess = (userData) => { // 处理登录成功后的逻辑 console.log('登录成功:', userData); }; const handleLoginFailure = (error) => { // 处理登录失败的逻辑 console.error('登录失败:', error); }; const authProviders = { linkedin: { clientId: '你的LinkedIn客户端ID', // 关键参数:强制每次登录都要求用户输入凭证 prompt: 'login' } }; return ( <SocialLogin providers={authProviders} onLoginSuccess={handleLoginSuccess} onLoginFailure={handleLoginFailure} > <button>使用LinkedIn登录</button> </SocialLogin> ); }; export default LinkedInLoginComponent;
原理说明
LinkedIn的OAuth 2.0协议支持prompt参数,当该参数设置为login时,会跳过已保存的用户会话,强制用户重新输入账户信息完成登录。react-social-login库允许将这类OAuth原生参数直接传入provider配置中,从而覆盖默认的自动登录行为。
内容的提问来源于stack exchange,提问作者hamza shah
相关产品推荐
相关产品推荐

