2016-04-01 6 views
0

python /フラスコ/ djangoの世界から来て、数週間前、私はangularとIonic(そしてFirebase)を使い始めました。私は一般的なREST APIのためのレジスタ/ログイン機能を実装しようとしています - ユーザーを送る/コンボを渡す、トークンを受け取るなどIonic、Angular authentication

私はPython(および他のサーバーサイドの言語)パターン - localstorageにauthトークンを格納するための工場出荷時のサービスを作成し、トークンが存在し、有効であればすべての状態/ルートのチェックを行います。そうでなければ、ログインページへのリダイレクトを考えていますか?この段階では、効率的でエレガントなものではなく、私が完全に排除できた解決策をむしろ好むでしょう。

+1

ます。http: //stackoverflow.com/questions/29719894/login-with-ionic-and-material-design/29934933#29934933 –

+0

m8ありますか? verサイトの実装と、コードイオンサイトのみを望みますか? – vivid

+0

はい、最初のリンクが意味を持ちます。サーバー側は問題ではありません。ユーザがログインしてログインページにリダイレクトするよりも、「確認しています」というプロセスに興味があります。 – freethrow

答えて

2

私は、この実装は簡単です使用していましたが、あなたはそれはあなたが:)

oauth.jsをこれを理解するのに役立ちますインターセプターを使用するだけでなくuはあなたのコードにそれを採用する必要があるように、そのモジュールを必要とするが、願っています可能性があり

すべてのリクエストで、私はsetupHeader()を追加します。トークンが時間切れに近いかどうかをチェックします。

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; 
} 
}; 

など、それを使用します。

_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; 
}; 

とリフレッシュトークンがoutoftimeであるか、私はちょうどこれはあなたを助けるでしょう

$state.go('app.login'); 

希望を使用拒否され; P

+0

うわー!ありがとうございました! – freethrow

+0

ちょうどlocalstorageを取得してください。あなたはcodeovasql aswellを使うこともできます:P – vivid

関連する問題