ユーザーがログインしている場合は、トークンキーがそうのようなローカルストレージに存在するかどうかをチェックすることによって確認することができますどのようにユーザーがログインしている場合
チェック:
angular.module('starter')
.service('AuthService', function($q, $http, USER_ROLES) {
var LOCAL_TOKEN_KEY = 'yourTokenKey';
var username = '';
var isAuthenticated = false;
var role = '';
var authToken;
function loadUserCredentials() {
var token = window.localStorage.getItem(LOCAL_TOKEN_KEY);
if (token) {
useCredentials(token);
}
}
function storeUserCredentials(token) {
window.localStorage.setItem(LOCAL_TOKEN_KEY, token);
useCredentials(token);
}
function useCredentials(token) {
username = token.split('.')[0];
isAuthenticated = true;
authToken = token;
if (username == 'admin') {
role = USER_ROLES.admin
}
if (username == 'user') {
role = USER_ROLES.public
}
// Set the token as header for your requests!
$http.defaults.headers.common['X-Auth-Token'] = token;
}
function destroyUserCredentials() {
authToken = undefined;
username = '';
isAuthenticated = false;
$http.defaults.headers.common['X-Auth-Token'] = undefined;
window.localStorage.removeItem(LOCAL_TOKEN_KEY);
}
var login = function(name, pw) {
return $q(function(resolve, reject) {
if ((name == 'admin' && pw == '1') || (name == 'user' && pw == '1')) {
// Make a request and receive your auth token from your server
storeUserCredentials(name + '.yourServerToken');
resolve('Login success.');
} else {
reject('Login Failed.');
}
});
};
var logout = function() {
destroyUserCredentials();
};
var isAuthorized = function(authorizedRoles) {
if (!angular.isArray(authorizedRoles)) {
authorizedRoles = [authorizedRoles];
}
return (isAuthenticated && authorizedRoles.indexOf(role) !== -1);
};
loadUserCredentials();
return {
login: login,
logout: logout,
isAuthorized: isAuthorized,
isAuthenticated: function() {return isAuthenticated;},
username: function() {return username;},
role: function() {return role;}
};
これは、ユーザー認証サービスの典型的な例です。ここでは、アプリケーションの読み込み時に、認可されたトークンが存在するかどうかを確認します。そうでない場合は、ユーザーがログアウトしたことを意味します。
同様の手法を適用して、ユーザーが確認コードを待っているかどうかを確認することもできます。
検証コード技術
- 検証コードは、特定のユーザーのために送り出された後
false
に設定され、データベース内のフィールドがあるかもしれません。
- ユーザーがコードを取得してフォームに入力すると、そのコードをデータベースと照合し、有効であれば
verified
フィールドをtrue
とマークします。
あなたのIonicアプリで認証を処理する方法については、この非常に良いtutorialをチェックしてください。
Ionic 2を使用している場合は、この総合tutorialを確認することができます。 Auth0も2-factor Authenticationを本当にうまく処理します。
こちらがお役に立てば幸いです。乾杯!
ユーザーの状態を含む変数をローカルに格納し、それに応じてデバイスの準備完了状況を確認し、リダイレクトすることができます。 – Deepika