Skip to main content

IMOAuth Provider

プラットフォーム

  • ios
  • android

概要

IMOAtuhはiAPとの煩雑なOAuth連携を簡略化する事を目的としています。
あなたのiAPの情報を設定する事で、認可及びその状態の管理するための便利な機能を提供します。

依存関係

info

Smartlimeは全てのProviderを包括しているため、Smartlimeが配置されている場合にはこの項目の内容は無視することができます。

IMOAtuhはIMTenantに依存しています。
IMOAtuhを利用する場合は、常にIMTenantと合わせて配置してください。

import { IMTenant, IMOAuth } from "@intra-mart/smartlime";

const App = () => {
return (
<IMTenant
baseUrl={'https://example.org/imart'}
tenantId={'default'}
>
<IMOAuth>
</IMOAuth>;
</IMTenant>
)
}
caution

baseUrlをIMTenantから取得するため、IMTenantのProviderが上位層に存在しない場合、IMOAtuhは常にエラーを返します。

Provider

このProviderはネストされたコンポーネントでOAuthの機能を利用できるようにします。

import { IMOAuth } from "@intra-mart/smartlime";

<IMOAuth
requestConfig={
clientId: 'exampleId',
clientSecret: 'exampleSecret',
scopes: ['exampleScope'],
redirectUri: 'exp://example.org:19000',
}
>
{/* content */}
</IMOAuth>;

Props

NameTypeRequiredDefault
requestConfigRequestConfigyes
storageKeystringno@example:IMAuthKey
remainingTimeToRunRefreshnumberno360000
oauthContextContextno

requestConfig

あなたのiAPのOAuthの設定情報を設定することができます。

NameTypeRequiredDefault
redirectUristringyes
clientIdstringyes
clientSecretstringyes
scopesstring[]yes
statecontextno
promptPromptnoLogin
info

redirectUriの生成にはexpoのAuthSession.makeRedirectUri()を利用できます。

prompt

認可を行う際にユーザに都度ログインを求めるかどうかを制御するためのpropです。
Loginが指定された場合、ユーザは常にログインを求められます。
Noneが指定された場合、以前のログイン情報が残ってればその情報が引き続き利用されます。

storageKey

IMOAuthはアクセストークンの取得や更新時にstorageKeyに渡された値でアクセストークンをSecureStoreに保存します。

info

このPropはオプショナルですが、常に一意な値を設定する事を推奨します。
別の場所でIMOAuthを利用した場合などに、storageKeyが重複するとアクセストークンの整合性が取れずにエラーが発生する可能性があります。

remainingTimeToRunRefresh

トークンの更新を行う時間間隔を設定する事できます。 最初のRenderやgetTokenAsyncが呼び出された時に、設定された時間を超過しているとIMOAuthはアクセストークンの更新を行います。
時間経過で自動的に更新を行うオプションではない事に注意してください。

oauthContext

context instanceを設定します。
このPropを設定した場合、ネストされたコンポーネント全てで同じcontextを利用しなければならない事に注意してください。
あなたがcontextについて詳しく知らない場合このオプションは利用するべきではありません。