yorkxin / oauth2-api-sample

Demos how to protect Grape API with OAuth 2.0 built with Doorkeeper
97 stars 33 forks source link

不会redirect 到 logout page 在用 implicit flow 的时候 #2

Open yexerik opened 10 years ago

yexerik commented 10 years ago

我用了Angular JS + https://github.com/andreareginato/oauth-ng 来当front end oauth, 然后按照你的教程做了grape api.

我想问为什么我logout的时候不redirect到devise logout page? 然后doorkeeper自动回传new token 在我再sign in时?

我想是因为那个人没有多一个Endpoint URI 到signout 只是做了 token session clean. 你能示范一下怎么样可以在API request 的时候access 到 devise warden 吗? 我想通过API call 然后 signout user.

yorkxin commented 10 years ago

我要理解一下你具體要的是什麼功能? single sign out 嗎?

yexerik commented 10 years ago

我想知到怎麼可以利用doorkeeper做出single sign out. 因為在implicit flow 好像只是清除了client side token session 而沒有真的sign out server side devise session. 我嘗試了在angular logout function 上加入 window.location.replace('http://enpoint_url/users/sign_out'), 然後在application controller 下面這個function to redirect back to client: def after_sign_out_path_for(resource_or_scope) if request.referer sleep(0.1) #without sleep thread cannot logout after second trials, weird.

沒有這個的sleep thread, 兩次sign in and sign out以後會sign out不了and keep giving new token.

  request.referer
else
  root_path
end

end

你能教一下我更好的方法做這個single sign out 嗎? 非常感謝 ^_^