grant_type “password”を持つOAuth2は “High Volume Customer Portal”ユーザーで機能する必要がありますか?

JavaScriptコードからgrant_type
“password”(およびclient_id、client_secret、username、password)とともに “/
services/oauth2/token”エンドポイントを使用しています。 “Connected App”定義で “IP
Restrictions”を “Relax IP
restrictions”に設定すると、良いユーザー名とパスワード(セキュリティトークンなし)を提供するだけでaccess_tokenを取得できます。

ただし、このコードは「システム管理者」プロファイルユーザー(「Salesforce」ライセンス)で機能しますが、「大量カスタマーポータル」プロファイルユーザー(「大量カスタマーポータル」ライセンス)では同じコードは機能しません。後者のプロファイルには「API
Enabled」がチェックされています。その場合に返されるエラーは次のとおりです。

{"error_description":"expired access/refresh token","error":"invalid_grant"}

これはライセンスタイプの問題ですか、問題を引き起こしている2人のユーザー間に矛盾がありますか?


OAuth for Portalのコメントにユーザー名とパスワードが記載されていますユーザー
が、それはやや簡潔です)。

ベストアンサー

Portal/CommunitiesユーザーのOAuth username-passwordは使用できません。

モバイルアプリでSalesforceにユーザーを認証する通常の方法は、OAuthユーザーエージェントのログインURLをWebビューにポップアップし、「success」URLへの最終リダイレクトを監視することです。

前にPhoneGap ChildBrowserプラグインで作業しています

;それ以来、PhoneGapでは多くのことが変わりましたが、これは一般的なアプローチを示しています。

一方、本当にユーザー名/パスワードを実行する場合は、
SOAPログイン

LoginScopeHeader
を使用して、ポータルに対して

一般に、エンタープライズIDプロバイダ、Facebook、GoogleなどからのSSOを処理するため、ウェブベースのログインが好まれます。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です