Yahoo Id 経由でモバイル アプリへのログ記録を有効にするのに苦労しています。OAuthWebSecurity を使用し、facebook、gmail、windows、twitter、yahoo によるログ記録を有効にする 1 つの動作中の Web アプリケーションがあります。私の仕事は、Web アプリケーションの機能の一部を備えたモバイル アプリケーションを作成することです。
ウェブアプリケーション:
- MVC4
- OAuthWebセキュリティ
- モバイル アプリケーション用に作成された WebApi コントローラーは、ログインしたユーザーを検証し、DB からデータを取得します。
モバイルアプリ:
- コルドバのイオンビルド
- OAuth の場合、OAuth nq-cordova プラグインを使用しています (yahoo プロバイダーのロジックを提供しないため、既存の方法に基づいて独自に作成しました)
- プロバイダーのエンドポイントを照会するための angular.js $http サービス (必要な場合)
私のモバイルアプリで設計された(私ではなく)認証フローは次のとおりです。
モバイル ログイン画面 -> プロバイダー ログイン ウィンドウを選択 -> 認証 -> OAuth access_token および/または user_id でリダイレクト -> WebApi にクエリを実行してユーザー ID を確認 -> DB からデータを取得
Yahoo 認証エンドポイントを照会した後: https://api.login.yahoo.com/oauth2/request_auth?client_id= ' + clientId + '&redirect_uri=' + redirectUri' + '&response_type=token
応答は次のとおりです: { access_token: 'my token in here' token_type: bearer, xoauth_yahoo_guid: 'my guid in here' }
私の WebApi ユーザー検証方法では、OAuthWebSecurity を使用します。
(OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false)
xoauth_yahoo_guid (yahoo の認証エンドポイントの応答フィールド) から「providerUserId」値を渡そうとしましたが、うまくいきません。
Web アプリケーションのデバッグ中に、同じ yahoo アカウントのメソッド
var result = OAuthWebSecurity.VerifyAuthentication()
がプロパティで Yahoo openId を返すことに気付きましたresult.ProviderUserId
。
私が間違っていることを誰かにアドバイスできますか?
お時間をいただきありがとうございます。