Questions tagged «logout»

13
故事板登录屏幕的最佳做法,注销时处理数据清除
我正在使用Storyboard构建iOS应用。根视图控制器是一个标签栏控制器。我正在创建登录/注销过程,并且工作正常,但是我遇到了一些问题。我需要知道设置所有这些的最佳方法。 我要完成以下任务: 首次启动应用程序时显示登录屏幕。他们登录时,转到“标签栏控制器”的第一个标签。 他们之后在任何时候启动应用程序,请检查它们是否已登录,然后直接跳到根选项卡栏控制器的第一个选项卡。 当他们手动单击注销按钮时,将显示登录屏幕,并清除视图控制器中的所有数据。 到目前为止,我所做的是将根视图控制器设置为“ Tab Bar控制器”,并为“登录”视图控制器创建了自定义序列。在我的Tab Bar Controller类中,我检查它们是否已在viewDidAppear方法内部登录,并执行以下命令:[self performSegueWithIdentifier:@"pushLogin" sender:self]; 我还设置了有关何时需要执行注销操作的通知: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(logoutAccount) name:@"logoutAccount" object:nil]; 注销后,我从钥匙串中清除凭据,运行[self setSelectedIndex:0]并执行segue以再次显示登录视图控制器。 一切正常,但我想知道:这种逻辑是否应该在AppDelegate中?我还有两个问题: 他们首次启动该应用程序时,会在执行Segue之前短暂显示Tab Bar Controller。我曾尝试将代码移到其中,viewWillAppear但是segue不能这么早地起作用。 当他们注销时,所有数据仍位于所有视图控制器中。如果他们登录到新帐户,则在刷新之前仍会显示旧帐户数据。我需要一种在注销时轻松清除此问题的方法。 我愿意对此进行修改。我考虑过将登录屏幕设为根视图控制器,或者在AppDelegate中创建一个导航控制器来处理所有事情……我只是不确定目前最好的方法是什么。

1
javax.faces.application.ViewExpiredException:无法还原视图
我编写了具有容器管理的安全性的简单应用程序。问题是当我登录并打开另一个要注销的页面时,然后回到第一页,然后单击任何链接等或刷新页面,我得到了此异常。我想这是正常的(或者可能不是:)),因为我注销了,会话被破坏了。我应该怎么做才能将用户重定向到例如index.xhtml或login.xhtml并使他免于看到该错误页面/消息? 换句话说,注销后如何自动将其他页面重定向到索引/登录页面? 这里是: javax.faces.application.ViewExpiredException: viewId:/index.xhtml - View /index.xhtml could not be restored. at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:212) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:110) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215) at filter.HttpHttpsFilter.doFilter(HttpHttpsFilter.java:66) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226) …

23
1440秒后phpmyadmin注销
在本地开发Ubuntu框中,我使用MySQL和phpmyadmin来处理数据库。 每当phpmyadmin闲置1440秒(24分钟)时,会话就会过期。我失去了位置,必须登录并重新开始。 我尝试更改$cfg['LoginCookieValidity'] = 3600 * 9;内部,config.inc.php但仍然在1440秒后超时。 我已重新启动所有内容并清除了浏览器缓存(Firefox历史记录->清除最近历史记录->缓存->所有内容)。 我不确定为什么增加的超时没有生效。我究竟做错了什么?

5
退出后防止用户看到以前访问过的安全页面
我要求最终用户在注销/退出后不能返回受限页面。但是目前,最终用户可以通过浏览器后退按钮,访问浏览器历史记录甚至通过在浏览器地址栏中重新输入URL来做到这一点。 基本上,我希望最终用户退出后不能以任何方式访问受限页面。我怎样才能做到最好?我可以使用JavaScript禁用后退按钮吗?

6
登录(身份验证)请求应使用哪种方法?
我想知道在执行登录请求时应该使用哪种http方法,为什么?由于此请求在服务器上创建了一个对象(用户会话),因此我认为应该是POST,您如何看待?但是由于登录请求应该是幂等的,所以可以是PUT,不是吗? 有关注销请求的相同问题,我应该使用DELETE方法吗?


13
Facebook Oauth注销
我有一个使用Oauth 2与Facebook集成的应用程序。 我可以使用FB进行授权,并很好地查询其REST和Graph API,但是当我授权使用FB创建活动的浏览器会话时。然后,我可以注销应用程序,但是与FB的会话仍然存在,因此,如果其他任何人使用浏览器,他们都将看到以前的用户FB帐户(除非以前的用户也手动注销了FB)。 我要授权的步骤是: 致电[LINK:graph.facebook.com/oauth/authorize?client_id ...] 如果用户的浏览器尚没有活动的FB会话,则此步骤将打开Facebook登录/连接窗口。他们登录到Facebook后,便使用可以交换oauth令牌的代码重定向到我的网站。 使用(1)中的代码调用[LINK:graph.facebook.com/oauth/access_token?client_id ..] 现在,我有了一个Oauth令牌,并且用户的浏览器已登录到我的站点以及FB。 我调用了一堆API来做事:即[LINK:graph.facebook.com/me?access_token= ..] 假设我的用户想要注销我的网站。FB条款要求我执行“单点注销”,因此当用户注销我的网站时,它们也将从Facebook中注销。有观点认为这有点愚蠢,但是如果有任何实际的实现方法,我很乐意遵守。 我看到了以下建议: 答:我使用Javascript API登出:FB.Connect.logout()。好吧,我尝试使用它,但是它没有用,而且我不确定如何使用,因为我在网站上未以任何方式使用Javascript API。该会话不是由Javascript API维护或创建的,因此我不确定该如何终止它。 B.使用[LINK:facebook.com/logout.php]。前一段时间,一位管理员在Facebook论坛上提出了此建议。给出的示例与获取FB会话的旧方法(非oauth)有关,因此我认为我无法在我的情况下应用它。 C.使用旧的REST api expireSession或revokeAuthorization。我尝试了这两种方法,尽管它们确实使Oauth令牌过期,但它们不会使浏览器当前正在使用的会话无效,因此它没有任何作用,用户也没有退出Facebook。 我确实有点松懈,Facebook文档不完整,模棱两可,而且效果很差。论坛上的支持不存在,目前我什至无法登录Facebook论坛,除此之外,他们自己的FB Connect集成甚至无法在论坛上使用。不会激发太大的信心。 Ta为您提供的任何帮助。德里克 ps。不得不将HTTPS更改为LINK,因果报应不足以发布链接,这可能足够公平。
70 facebook  oauth  logout 

23
为什么节点中的PassportJS无法在注销时删除会话
我无法让我的系统使用PassportJS注销。似乎正在调用注销路由,但它并未删除会话。如果用户未以特定的路线登录,我希望它返回401。我打电话给authenticateUser来检查用户是否登录。 非常感谢! /******* This in index.js *********/ // setup passport for username & passport authentication adminToolsSetup.setup(passport); // admin tool login/logout logic app.post("/adminTool/login", passport.authenticate('local', { successRedirect: '/adminTool/index.html', failureRedirect: '/', failureFlash: false }) ); app.get('/adminTool/logout', adminToolsSetup.authenticateUser, function(req, res){ console.log("logging out"); console.log(res.user); req.logout(); res.redirect('/'); }); // ******* This is in adminToolSetup ******** // …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.