Bu uygulama kolaydır kullanıyordum ama bunu sen :)
oauth.js bu anlamaya yardımcı olacaktır önleme kullanmak ve ayrıca u koduna benimsemek gerekir böylece onun modülünü gerektirir ama umut olabilir
define('oAuth',['app'],function(app){
return app.module('appName').factory("oAuth",["$q", "$http", "$localStorage", function ($q, $http, $localStorage) {
var oAuthModule = {};
var _authorize = function(username,password){
var deferred = $q.defer();
var data = "grant_type=password&client_id=CLIENT&username="+username+"&password="+password;
var host = $localStorage.host + "/token";
$http.post(host,data, { headers: { "Content-Type": "application/x-www-form-urlencoded"}}).then(function(s){
$localStorage.authorizationData = s.data;
$localStorage.tokenAwardTime = Date.now();
deferred.resolve("success");
},function(error){
deferred.reject(error)
});
return deferred.promise;
};
var _refreshToken = function(){
var deferred = $q.defer();
var data = "grant_type=refresh_token&client_id=CLIENT&refresh_token="+$localStorage.authorizationData.refresh_token;
var host = $localStorage.host + "/token";
$http.post(host,data, { headers: { "Content-Type": "application/x-www-form-urlencoded"}}).then(function(s){
$localStorage.authorizationData = s.data;
$localStorage.tokenAwardTime = Date.now();
deferred.resolve("success");
},function(error){
deferred.reject(error)
});
return deferred.promise;
};
var _updateHeader = function(){
var deferred = $q.defer();
try {
if($localStorage.authorizationData.token_type && $localStorage.authorizationData.access_token){
$http.defaults.headers.common.Authorization = $localStorage.authorizationData.token_type + " " + $localStorage.authorizationData.access_token;
}else{
deferred.reject('Code Undefined');
}
}
catch(err) {
deferred.reject(err);
}
finally {
deferred.resolve("Code done");
}
return deferred.promise;
};
oAuthModule.updateHeader = _updateHeader;
oAuthModule.auth = _authorize;
oAuthModule.refresh = _refreshToken;
return oAuthModule;
}])
});
Her istekte setupHeader(); belirtecin zamanın yakınında olup olmadığını kontrol eder.
var setupHeader = function(){
var diffrence = (new Date(Date.now()).getTime() - new Date($localStorage.tokenAwardTime).getTime())/1000;
if(diffrence >= 3500){
socialveoOAuth.refresh().then(function(s){
$http.defaults.headers.common.Authorization = $localStorage.authorizationData.token_type + " " + $localStorage.authorizationData.access_token;
},function(e){
$state.go('app.login');
});
}
else{
$http.defaults.headers.common.Authorization = $localStorage.authorizationData.token_type + " " + $localStorage.authorizationData.access_token;
}
};
ve gibi kullanabilirsiniz:
_requests.LogOut = function(){
var deferred = $q.defer();
setupHeader();
$http.get($localStorage.host+"/logout/").then(
function(suc){
deferred.resolve(suc.data.data);
},function(err){
deferred.reject(err);
}
);
return deferred.promise;
};
ve belirtecinin yenilenmesi outoftime veya kovduğunuzda ben sadece bu size yardımcı olacaktır
$state.go('app.login');
umut kullanın; P
http: //stackoverflow.com/questions/29719894/login-with-ionic-and-material-design/29934933#29934933 –
m8 sizde var mı ver site uygulaması ve sadece kod iyonik site ister misiniz? – vivid
Evet, ilk bağlantı anlamlıdır. Sunucu tarafı bir sorun değil, kullanıcı oturum açtığında ve giriş sayfasına yönlendirmek için "kontrol" işlemi ile ilgileniyorum, – freethrow