我在expressjs应用程序中使用everyauth进行oauth身份验证&授权37signals站点。然而,这是一个普遍的问题。
当用户第一次访问我的应用程序时,他会从37signals网站对我的应用进行身份验证和授权。然后他被重定向到我的应用程序,在那里我将用户信息和访问令牌一起保存在数据库中。现在假设用户注销。如果他试图登录,他将被迫再次授权我的应用程序。这是不对的。我希望每个auth都绕过授权步骤,因为它已经完成了一次。这通常是通过在使用oauth提供程序站点启动oauth流时传递刷新令牌来完成的。但我不确定everyauth是如何处理第二次登录的。有人能解释一下吗?
当用户试图通过重定向到http://localhost/auth/37signals
登录时,我启动oauth流。
这是我正在使用的每个身份验证代码,
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策略,在这里也遇到了同样的问题。每次用户注销后登录时,都会出现审批屏幕(授权应用程序名称使用您的帐户)。
根据此线程,这似乎不受支持https://groups.google.com/forum/?fromgroups=#!searchin/37signals-api/refresh/37signals-app/B59BS CMxfs/pf3NsaHMUN4J