質問編集履歴

1

内容を修正

2017/03/14 03:28

投稿

stvrz2
stvrz2

スコア7

test CHANGED
@@ -1 +1 @@
1
- auth0でgoogle認証成功後にrulesエラーになった場合にUsersに登録しないようにする方法
1
+ auth0のRulesエラーハンドリングの方法
test CHANGED
@@ -1,10 +1,14 @@
1
1
  # 実現したいこと
2
2
 
3
- auth0でgoogle認証で成功した後、Auth0のRulesでエラーになった場合、auth0に登録しないようにしたい。
3
+ auth0でgoogle認証で成功した後、Auth0のRulesでエラーになった場合エラーメッセージをURL Fragment(Hash)から取得せず、Auth0のBasic認証とどうようにコールバック関数で処理したい。
4
4
 
5
5
 
6
6
 
7
+ また、URLにはfragmentをつけないようにしたい。
8
+
9
+
10
+
7
- もしくはRules失敗したことをAuth0のUsersに情報を持たせたい
11
+ なおスマホのブラウザ利用することを想定して、redirectで利用。
8
12
 
9
13
 
10
14
 
@@ -12,17 +16,13 @@
12
16
 
13
17
  google認証成功後、auth0側のUsersにはユーザーが登録されている。
14
18
 
15
- しかし、リダイレクト後の画面では、URLのサーチパラメータにエラーメッセアペンドされた状態。(できれば、auth0側に登録ないように
19
+ しかし、リダイレクト後の画面では、URL Fragmentにエラーはいっておりwindow.location.hashで取得てエラーハンドリング
20
+
21
+ (一方で、Basic認証の場合は、callback関数で処理しており、エラー時の処理が分散している。また、この場合はエラー時もFragmentは空)
16
22
 
17
23
 
18
24
 
19
- component側のエラーハンドリングで、auth0.users.deleteするかなしょうか
25
+ Auth0-jsを使用ますが、同じことがきればLockでも可です
20
-
21
- そうだとしても、Basic認証のように、`webAuth.client.login(...., callback)`のように、callbackでエラー処理したいところですが、google認証などのOauth2認証ではauthorizeメソッドがcallbackを取れないので、basic認証のように処理できず困っています。。
22
-
23
-
24
-
25
-
26
26
 
27
27
 
28
28
 
@@ -50,7 +50,17 @@
50
50
 
51
51
 
52
52
 
53
- return callback(new UnauthorizedError('User Not Exist!!!'));
53
+ return callback(new UnauthorizedError('user_not_exist'));
54
+
55
+ ```
56
+
57
+
58
+
59
+ # エラー時のURL(google-oauth2でエラーになった場合)
60
+
61
+ ```
62
+
63
+ http://localhost:8100/?error=unauthorized&error_description=user_not_exist#
54
64
 
55
65
  ```
56
66
 
@@ -82,13 +92,43 @@
82
92
 
83
93
  IonViewWillEnter() {
84
94
 
85
- const searchParam = window.location.search;
95
+ const fragment = window.location.hash;
86
96
 
87
- // エラー時の処理が続く
97
+ // エラー処理...
88
-
89
- // rulesでエラーでも、このタイミングでauth0のusersには登録されている状態になる
90
98
 
91
99
  }
100
+
101
+ ```
102
+
103
+
104
+
105
+ # Bascic認証の場合(参考): auth.service.ts
106
+
107
+ ```typescript
108
+
109
+ this.auth0.client.login({
110
+
111
+ realm: 'Username-Password-Authentication',
112
+
113
+ ,,,
114
+
115
+ }, (err, authResult) => {
116
+
117
+ // エラー処理
118
+
119
+ });
120
+
121
+ ```
122
+
123
+
124
+
125
+ # エラー時のURL(参考): Basic認証
126
+
127
+ ※ Fragment/Hashはなし
128
+
129
+ ```
130
+
131
+ http://localhost:8100
92
132
 
93
133
  ```
94
134
 
@@ -98,11 +138,9 @@
98
138
 
99
139
 
100
140
 
101
-
102
-
103
141
  # 利用パッケージ
104
142
 
105
- - Ionic 2
143
+ - Ionic 2 (Webとして使用)
106
144
 
107
145
  - Angular 2
108
146