相关疑难解决方法(0)

django rest framework - 令牌认证注销

我已经根据django rest框架Docs实现了令牌认证.

从我读到的形式来看,DRF的令牌认证非常简单 - 每个用户一个令牌,令牌不会过期并且始终有效(我是对的吗?).

我知道有更好的做法,但是现在DRF令牌认证对我来说很好.

我的问题是 -使用普通DRF令牌身份验证注销的最佳做法什么?

我的意思是,当用户注销时,我应该从客户端删除令牌吗?然后登录再次获取令牌?我应该删除令牌并生成一个新令牌吗?

有经验的人吗?

login token logout django-rest-framework http-token-authentication

22
推荐指数
2
解决办法
2万
查看次数

AWS Cognito - 如何在使用 Google 登录时强制选择帐户

我目前正在使用与 Google 联合作为身份提供商的 Cognito 用户池来处理用户登录我的网络应用程序。目前,我只实现了使用 Google 登录。这目前正在通过 Cognito 的托管 UI 完成。

当用户使用 Google 登录时,我希望始终提示他们选择他们的帐户,即显示此提示

但是,我发现当我仅使用一个 Google 帐户登录时,会跳过此屏幕。虽然,当我没有登录 Google 帐户/2 个或更多 Google 帐户时,会显示此屏幕。

我试图让这个屏幕总是出现的事情:

  1. 使用 AWS Amplify 的federatedSignIn({provider: 'Google'})功能。然而,我发现,这只是对Cognito的托管UI,只是重定向到相同的授权端点的包装,如所描述这里
  2. 添加prompt=select_accountGoogle 文档中详述的授权端点,但这没有任何效果。这并不奇怪,因为授权端点promptAWS 文档中没有详细说明该选项。

如果有人对我如何始终显示此帐户选择屏幕有任何想法,将不胜感激。

authentication amazon-web-services oauth-2.0 google-oauth amazon-cognito

17
推荐指数
1
解决办法
4272
查看次数

如何使用Jquery/Javascript清除PHP会话?

只想询问是否可以使用jquery或javascript进程清除PHP会话?因为我想要做的是使用对话框清除PHP会话.如果用户单击"确定"按钮,它将处理未设置的功能.在我的页面中有一个结帐过程,在用户单击"确定"按钮后,它将提示一个对话框,如果用户单击"确定"按钮,它将取消设置PHP会话,并将重定向到另一个页面.

这是我的简单代码:

<i class="fa fa-check"></i> <span id="save_registry" class="cursor: pointer">OK</span>

<div id="save_alert" style="display: none">
    <?php unset($this->session->data['cart']);
</div>


....

$('#save_registry').click(function(){

        $('#save_alert').dialog({
            modal: true,
            buttons: {
                Ok: function() {
                    $( this ).dialog( "close" );
                    location = 'index.php?route=common/home'; 
                }
            }
        });

});
Run Code Online (Sandbox Code Playgroud)

php session jquery

7
推荐指数
2
解决办法
4万
查看次数

如何在页面刷新后注销用户?

我正在关注Google的指南以退出用户.

考虑到gapi.auth2刷新页面后将不确定,我正在做:

if (gapi.auth2) {
    var auth2 = gapi.auth2.getAuthInstance();
    auth2.signOut();
} else {
    gapi.load('auth2', function () {
        gapi.auth2.init({
            client_id: 'myAppID',
            cookiepolicy: 'single_host_origin'
        }).signOut();
    });
}
Run Code Online (Sandbox Code Playgroud)

但我进入uncaught exception: This method can only be invoked after the token manager is started了其他区块.

我也尝试将auth实例存储在本地存储中,但这样做会导致一些循环对象值错误,同时对其进行字符串化.

一个可行的解决方案是做一个

document.location.href = "https://www.google.com/accounts/Logout?continue=https://appengine.google.com/_ah/logout?continue=myUrl";
Run Code Online (Sandbox Code Playgroud)

但是,除了执行不需要的重定向之外,不会仅仅记录我的应用程序用户,这会影响他所记录的所有Google服务.

有不同的方法吗?

javascript angularjs google-signin

7
推荐指数
2
解决办法
1981
查看次数

用Google登录-如何注销?

我已使用Google提供的示例代码成功实现了与Google的登录。

但是,我不确定应该如何使用此“后端服务器身份验证”。

该文件位于:https : //developers.google.com/identity/sign-in/web/backend-auth

我正在开发一个需要google登录名和google drive的网站,因为程序在运行:

  1. 用户使用Google帐户登录网站
  2. 用户写一些文字
  3. 用户保存(上传)到用户的Google驱动器

在实现google drive API之前,我认为我需要使用google登录系统,但是我不确定该怎么做。

目前,我的网站为1.用户登录/ 2.用户注销/ 3.然后网络不询问google帐户,而只是在其中登录前一个用户。

“后端服务器身份验证”是否可以回答以下我的问题?

我了解这是与此相同的问题:如何注销使用OAuth2登录Google的应用程序?。我理解了答案的含义,但是我无法找到一种方法来实现“仅从应用程序而不是Google登出”。

总结一下,我的问题是2;

  1. 如何使用后端服务器身份验证?(特别是令牌验证点)
  2. 如何注销我的网络应用程序而不是Google?和问题1有关吗?(特别是,如果用户从Web应用程序注销,则另一个用户应该可以通过输入其ID和密码来登录)

authentication google-app-engine token oauth-2.0

6
推荐指数
1
解决办法
1万
查看次数

Cognito + Google + React - 使用 aws amplify 无法注销

我可以在 Reactjs 应用程序中使用 aws-amplify 库使用 google 帐户登录。

当我注销并尝试再次登录时,它不会要求我输入谷歌用户名和密码。它使用之前的会话(以某种方式)并将我重定向回我的反应应用程序。

我阅读了不同的问题并应用了各种解决方案,但没有一个对我有用。

解决方案 1:这对于 google 注销显然不起作用。

const logout = () => {

    Auth.signout()
 
}
Run Code Online (Sandbox Code Playgroud)

解决方案2:

const logout = () => {

  const requestOptions = {
        method: "POST",
        'Content-Type': 'application/x-www-form-urlencoded'
  };

  const url = `https://{domain}.amazoncognito.com/logout?client_id=xxx&response_type=code&scope=xxx&redirect_uri=http://xxx/logout`;

  await fetch(url, requestOptions);
}
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,它引发了 CORS 问题。

  1. 我不知道如何以及在哪里解决 CORS 问题?我需要在 cognito 中配置什么吗?

  2. 尝试使用method: "GET"而不是method: "POST"相同的 CORS 问题。

  3. 我不知道这个做法是对还是错。让我知道是否还有其他明确的方法。

需要知道注销和销毁用户会话的正确方法。所以下次当我尝试登录时,它必须要求我输入谷歌用户名和密码。


更新

解决方案3:

const logout = () => {

       window.location.href = "https://www.google.com/accounts/Logout?continue=https://appengine.google.com/_ah/logout?continue=http://www.example.com"

 }
Run Code Online (Sandbox Code Playgroud)

通过上述方法,它会将我重定向到应用程序的登录页面,但不幸的是,当我再次单击Google Signin …

javascript amazon-web-services reactjs amazon-cognito aws-amplify

6
推荐指数
1
解决办法
1449
查看次数

Passport-google-oauth无法注销用户

我使用该passport-google-oauth模块对使用构建的Web应用程序上的用户进行身份验证Express.js。注销事件的处理方式如下:

app.get('/logout', function(req, res) {
    console.log("logged out!");
    req.logout();
    res.redirect('/');
});
Run Code Online (Sandbox Code Playgroud)

尽管确实可以将用户重定向到登录页面(位于/),但我不确定它是否真的将其注销。单击注销后,当我Gmail在新选项卡中打开时,我仍保持登录状态(没有,以前没有登录Gmail过)。我怎样才能解决这个问题?此外,如何req.logout()注销用户?

oauth node.js oauth-2.0 google-oauth passport.js

3
推荐指数
1
解决办法
4348
查看次数