問題タブ [appauth]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oauth - リダイレクトする iOS 11 AppAuth 処理リダイレクト URI
iOS アプリ、特に iOS 11 で Google OAuth 認証にAppAuth (v 0.90.0)を使用すると、次のようになります。
- リダイレクト URI を使用して、iOS クライアントで Google 認証を開始します
http://myproduct.com/oauth-redirect
。クライアント ID は Web アプリケーションの ID であるため、カスタム URL を指定できません。 - AppAuth がクライアントで SFAuthenticationSession を開始すると、サインインを許可するよう求められます。[続行] を選択します。( https://github.com/openid/AppAuth-iOS/blob/0.90.0/Source/iOS/OIDAuthorizationUICoordinatorIOS.m#L91-L95 )
http://myproduct.com/oauth-redirect
はカスタム URLmyproduct://auth
にリダイレクトし、SFAuthenticationSession 完了ブロックは のコールバック URL で実行されますmyproduct://auth
。- AppAuth が認証フローを再開すると、元の URL が前のステップのコールバック URL と同じかどうかがチェックされます: https://github.com/openid/AppAuth-iOS/blob/0.90.0/Source/OIDAuthorizationService.m #L108-L110
http://myproduct.com/oauth-redirect
とが違うのでmyproduct://auth
、流れが止まります。
サーバー側でトークン交換を実行できるように、Web アプリの clientID を使用していることに注意してください。
resumeAuthorizationFlowWithURL
以前の AppAuth バージョンでは、更新された URL で直接呼び出すことができたので、これが可能でした。
AppAuth を更新せずにこのユース ケースをサポートする方法はありますか?
android - ログイン時に Chrome のカスタム タブが空白の画面でスタックすることがある
最近、AppAuth をアプリケーションに統合して、OAuth2 認証コード フローを自動化しました。ユーザーがログインしようとすると、まず認証サーバーにリダイレクトされ、そこでログインを続行してから、アプリケーションにリダイレクトされます。
ログインページ (AppAuth) を開くために chrome-custom-tabs を使用します。問題は、空白の画面で動かなくなることがあることです (chrome タブには、レンダリングされたサイトやリダイレクトのない空白のページが表示されます)。これは、ユーザーがブラウザーで既にセッションを持っている場合に発生するため、タブは自動的に閉じられ、ユーザーはアプリケーション (認証済み) にリダイレクトされます。動作に一貫性がなく、この問題が時々発生するだけです (~50/50)。
喜んでコードを追加しますが、どこから始めればよいかわかりません (テキストの壁を避けようとしています)。既知の問題または警告はありますか?
ここで説明されているようにコンテキストを切り替えてみましたが、同じ問題が発生し続けました。
android - UI スレッドで okhttp 応答コードを実行しようとすると NetworkOnMainThreadException が発生する
私の Android アプリでは、AppAuthを使用して OpenID 接続エンドポイントでユーザーを認証しているため、一連の非同期呼び出しを行っており、最後の呼び出しが返されたときに、okhttp を使用して最終結果を取得しています。アクティビティの UI に表示するには、次のようにします。
しかし、テキストビューを更新しようとすると、次の例外が発生します。
android.os.NetworkOnMainThreadException
を削除しようとするとrunOnUiThread
、「ビュー階層を作成した元のスレッドのみがそのビューにアクセスできます」という別の例外が発生します。
理解できません。私は何をすべきか?