2016-11-14 19 views
1

反応するネイティブアプリでは、リフレッシュトークンをどのように取得しますか?私はドキュメントで、REST APIの委譲エンドポイント経由でリフレッシュトークンエンドポイントを直接呼び出すことができますが、Auth0ロックコンポーネントを使用して抽象的に行う方法はありますか?おそらく "ログインを覚えている"とあなたのためのすべての配管を行ういくつかの種類の設定?ロックを使用してAuth0でリフレッシュトークンを取得する方法ネイティブ

それ以外の場合は、アプリを起動するたびにリフレッシュトークンサービスを呼び出しますか?もしそうなら、REST呼び出しを直接行うか、何らかのauth0ライブラリを使って行う必要がありますか?

既存のトークンが

  • が満了していないことを確認がためのリフレッシュトークンを償還トークン

  • をリフレッシュを得る

    • などの必要な手順を示しライブラリを使用するサンプルコードがありますアクセストークン

    これらのステップは何らかの形で図書館によって抽象化されていますか?

  • 答えて

    2

    ユーザー認証の結果として受け取ったid_tokenはOpenID Connect仕様に準拠するため、有効期限を検出するために確認できるexpクレームが含まれます。

    EXP:IDトークン上またはその後の有効期限は、処理のために受け入れてはなりません。このパラメータの処理では、現在の日付/時刻が値に記載されている有効期限日時より前でなければなりません。実装者は、クロックスキューを考慮に入れるために、わずかな余裕を、通常は数分以内に提供してもよい(MAY)。 その値は、1970-01-01T0:0:0ZからUTCで測定された秒数を表すJSON数値で、です。

    (強調は私のものです。ソース:OpenID Connect

    offline_access範囲は、認証プロセスを実行するときにIDトークンと一緒に発行されたリフレッシュトークンを取得する必要があります含まれている場合。

    react-native-lock documentationに従って、authenticationAPI()メソッドを使用して、ユーザーのトークンを更新するために使用できる認証APIクライアントを取得できます。

    特定の呼び出しはreact-native-auth0 documentationで見ることができます。

    .authentication('{YOUR_CLIENT_ID}') 
    .refreshToken('user refresh_token') 
    .then(response => console.log(response)) 
    .catch(error => console.log(error)); 
    
    +0

    は、クライアントによって得られるトークンのEXPプロパティです - クライアントが完全にトークンを解読することはできませんので、? – MonkeyBonkey

    +0

    クライアントアプリケーションは、セクション3.1.3.7で指定されたルールに従ってIDトークンを検証する必要があります。 OpenID Connectのインストールこれは、トークンが暗号化を使用していた場合は復号化を含みますが、Auth0発行のトークンが署名され、base64urlがエンコードされていることがわかっている限り、検証プロセスのステップ9は、「exp」クレームの検証に関するものです。 –

    +0

    OK、クライアント側で標準のjsonwebtokenライブラリを使ってjwtトークンからexp日付を抽出できるはずです – MonkeyBonkey

    関連する問題