我已经根据django rest框架Docs实现了令牌认证.
从我读到的形式来看,DRF的令牌认证非常简单 - 每个用户一个令牌,令牌不会过期并且始终有效(我是对的吗?).
我知道有更好的做法,但是现在DRF令牌认证对我来说很好.
我的问题是 -使用普通DRF令牌身份验证注销的最佳做法是什么?
我的意思是,当用户注销时,我应该从客户端删除令牌吗?然后登录再次获取令牌?我应该删除令牌并生成一个新令牌吗?
有经验的人吗?
login token logout django-rest-framework http-token-authentication
我目前正在使用与 Google 联合作为身份提供商的 Cognito 用户池来处理用户登录我的网络应用程序。目前,我只实现了使用 Google 登录。这目前正在通过 Cognito 的托管 UI 完成。
当用户使用 Google 登录时,我希望始终提示他们选择他们的帐户,即显示此提示。
但是,我发现当我仅使用一个 Google 帐户登录时,会跳过此屏幕。虽然,当我没有登录 Google 帐户/2 个或更多 Google 帐户时,会显示此屏幕。
我试图让这个屏幕总是出现的事情:
federatedSignIn({provider: 'Google'})功能。然而,我发现,这只是对Cognito的托管UI,只是重定向到相同的授权端点的包装,如所描述这里。prompt=select_account到Google 文档中详述的授权端点,但这没有任何效果。这并不奇怪,因为授权端点prompt的AWS 文档中没有详细说明该选项。如果有人对我如何始终显示此帐户选择屏幕有任何想法,将不胜感激。
authentication amazon-web-services oauth-2.0 google-oauth amazon-cognito
只想询问是否可以使用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) 我正在关注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服务.
有不同的方法吗?
我已使用Google提供的示例代码成功实现了与Google的登录。
但是,我不确定应该如何使用此“后端服务器身份验证”。
该文件位于:https : //developers.google.com/identity/sign-in/web/backend-auth
我正在开发一个需要google登录名和google drive的网站,因为程序在运行:
在实现google drive API之前,我认为我需要使用google登录系统,但是我不确定该怎么做。
目前,我的网站为1.用户登录/ 2.用户注销/ 3.然后网络不询问google帐户,而只是在其中登录前一个用户。
“后端服务器身份验证”是否可以回答以下我的问题?
我了解这是与此相同的问题:如何注销使用OAuth2登录Google的应用程序?。我理解了答案的含义,但是我无法找到一种方法来实现“仅从应用程序而不是Google登出”。
总结一下,我的问题是2;
我可以在 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 问题。
我不知道如何以及在哪里解决 CORS 问题?我需要在 cognito 中配置什么吗?
尝试使用method: "GET"而不是method: "POST"相同的 CORS 问题。
我不知道这个做法是对还是错。让我知道是否还有其他明确的方法。
需要知道注销和销毁用户会话的正确方法。所以下次当我尝试登录时,它必须要求我输入谷歌用户名和密码。
更新
解决方案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
我使用该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-2.0 ×3
google-oauth ×2
javascript ×2
token ×2
angularjs ×1
aws-amplify ×1
jquery ×1
login ×1
logout ×1
node.js ×1
oauth ×1
passport.js ×1
php ×1
reactjs ×1
session ×1