2012-08-31 49 views
0

我在我的expressjs应用程序中使用everyauth来执行oauth身份验证&授权与37signals网站。但是,这是一个普遍的oauth问题。everyauth总是触发授权

当用户第一次访问我的应用程序时,他从37signals网站对我的应用程序进行身份验证和授权。然后他被重定向到我的应用程序,在那里我将用户信息与访问令牌一起保存在数据库中。现在让我们说,用户注销。如果他尝试登录,他将被迫再次授权我的应用程序。这个不对。我期望everyauth绕过授权步骤,因为它已经完成了一次。这通常是通过在oauth提供者站点启动oauth流时传递刷新令牌来完成的。但我不确定everyauth如何处理第二次登录。有人可以对此有所了解吗?

当用户试图通过将他重定向到http://localhost/auth/37signals来启动oauth流程。

这里是我使用的代码everyauth,

everyauth['37signals'] 
    .appId('e6e76726501abf1b5627fe854b384ef8d62d7a55') 
    .appSecret('7c6891f46cb19aaf1831785968630ed4a1b3c342') 
    .findOrCreateUser(function (sess, accessToken, accessSecret, _37signalsUser) { 
    console.log('inside findOrCreateUser'); 
    console.log(util.inspect(_37signalsUser)); 
    var promise = this.Promise(); 
    users.findOrCreateUser(_37signalsUser, accessToken, accessSecret, promise); 
    return promise; 

    }) 
    .redirectPath('/authenticated'); 

我在这里实现了Twitter的战略和有同样的问题也是如此。每次用户在注销后登录时,都会显示批准屏幕(授权应用程序名称以使用您的帐户)。

+0

你确认浏览器设置为接受cookie支持? – Sachin

+0

是的,浏览器被设置为接受cookie。所有的网站都很好。 – user1566788

回答

相关问题