重新登录时刷新Hello.js页面

时间:2017-06-12 17:12:22

标签: javascript twitter-oauth hello.js

我正在使用hello.js在反应应用上使用twitter登录。

hello.init({
  twitter: 'II7hpGaWFZ1n2dbpGzr59bxko',
});

我确实在https://auth-server.herokuapp.com

上注册了该应用

首次加载页面时,会显示登录表单。用户可以点击按钮登录twitter,hello.js打开一个弹出窗口并进行身份验证。用户返回主页并显示安全内容

<button className="button button-red primary" name="login"
   onClick={(e)=>{this.handleTwitterLogin(e)}}>
      <i className="icon-twitter float-left"></i>Continue with Twitter
</button>

handleTwitterLogin = (event) => {
  event.preventDefault()
  event.stopPropagation()
  hello.login('twitter', auth=>{
    console.log('requesting twitter auth')
    hello('twitter').api('me')
      .then( result=>{
        this.props.actions.login('twitter')
        this.props.actions.updateUser({
          username: result.name,
          screen_name: result.screen_name,
          image: result.profile_image_url_https
        })
      this.props.history.push('/')
    })
  })
}

到目前为止,这么好。如果用户退出,我将其从Twitter注销,退出我的应用程序并重定向到主页:

logout = () => {
  hello.logout('twitter', ()=>{
  this.props.actions.logout()
  this.props.history.push('/')
  })
}

主页现在再次显示登录表单,因为用户已注销。但是,如果用户点击&#34;使用Twitter登录&#34;再次按下按钮,似乎页面已刷新,网址从/更改为/?login=,并且未调用按钮的onClick handler handleTwitterLogin = (event) =>函数。再次单击该按钮会按预期启动登录过程。我无法弄清楚调用什么代码来重新加载页面或如何调试它。

0 个答案:

没有答案