Ich implementiere eine Web-API mit angularjs. Ich kann es ohne Probleme laufen und bekomme, was ich will, das einzige ist, ich bin in der Lage, meine "access_token" in der "Antwort" Registerkarte meines "Netzwerk" Tab zu sehen. Obwohl es verschlüsselt ist, kann ich es sehen. Meine Frage ist: 1. Ist das sicher? 2. Wie verstecke ich es, wenn es keine gute Praxis ist? 3. Wenn ich dieses "access_token" kopiere und es in eine "Postman" -Anwendung stelle, kann ich tatsächlich authentifiziert werden. Wie gehe ich vor, um das zu vermeiden?Zugriffstoken wird auf der Registerkarte "Antwort" angezeigt
Get Token vom Server
myApp.factory('accountService', [
'$http', '$q', 'serviceBasePath', 'userService', function($http, $q, serviceBasePath, userService) {
var fac = {};
fac.login = function(user) {
var obj = { 'username': user.username, 'password': user.password, 'grant_type': 'password' };
Object.toparams = function ObjectsToParams(obj) {
var p = [];
for (var key in obj) {
p.push(key + '=' + encodeURIComponent(obj[key]));
}
return p.join('&');
}
var defer = $q.defer();
$http({
method: 'post',
url: serviceBasePath + "/token",
data: Object.toparams(obj),
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}).then(function(response) {
userService.SetCurrentUser(response.data);
defer.resolve(response.data);
}, function(error) {
defer.reject(error.data);
});
return defer.promise;
}
fac.logout = function() {
userService.CurrentUser = null;
userService.SetCurrentUser(userService.CurrentUser);
}
return fac;
}
]);
Set und erhalten Sie das Token
myApp.factory('userService', function() {
var fac = {};
fac.CurrentUser = null;
fac.SetCurrentUser = function (user) {
fac.CurrentUser = user;
sessionStorage.user = angular.toJson(user);
}
fac.GetCurrentUser = function() {
fac.CurrentUser = angular.fromJson(sessionStorage.user);
return fac.CurrentUser;
}
return fac;
});
Danke.
werfen Sie einen Blick https://rnd.feide.no/2012/04/19/best-practice-for-dealing-with-oauth-2-0-token-expiration-at-the-consumer/ – Manish
Danke für den Link, aber ich denke, dass es meine Fragen nicht anspricht. Die einzige Information, die ich tatsächlich bekommen habe, ist die Gültigkeitsdauer der Zugriffstoken, die ich tatsächlich gemacht habe, auf 1 Tag zu setzen (nicht in meinen Codes, aber ich habe es gesetzt). –
was für ein Token ist es? –