2017-12-12 12 views
0

githubを使用して認証しようとしています。featherjsを使用してgithubで認証すると、奇妙な動作が発生します

コールバック、successRedirect、failureRedirectが正しく設定されています。

successRedirectページが呼び出されます。このページでは、authenticate関数を呼び出そうとしています。

client.authenticate({ 
     strategy: 'github' 
    }) 

約束はトークンで解決しますが、セキュリティ保護されたサービスにアクセスしようとするとエラーが返されます。その後、2回目のアクセスに再試行しようとすると、サービスが動作します。

誰かが私に説明したり、私に実例を教えてもらえますか?

マイコード:私はそれが構成され、成功していたので、私は(ログに記録されるようになってるしながら、サービスの最初の呼び出しは、認証エラーではなく、第二に失敗していることがわかりログで

const hello = client.service('hello'); 

function getVal(iter) { 
    console.log("Iter " + iter) 

    hello.get(1, {}).then((data) => { 
    console.log('User is logged'); 
    console.dir(data) 
    }, (error) => { 
    console.dir(error) 
    getVal(iter + 1) 
    }) 
} 

client.authenticate({ 
    strategy: 'github' 
}).then((token) => { 
    console.dir(token) 
    getVal(0) 
}, (error) => console.dir(error)); 

リダイレクト)

マイログ:

Object { accessToken: "eyJhbGciOiJIUzI1NiIsInR5cCI6ImFjY2…" } 

Iter 0 
{ 
className: "not-authenticated" 
code: 401 
…… 
} 
Iter 1 
User is logged 
{…} 

答えて

1

代わりauthenticateを呼び出すあなただけのユーザーのトンをリンクする必要がありoAuth2 client usage APIショーo /auth/github oAuthの流れをキックする:

<a href="/auth/github" class="button">Login With GitHub</a> 
+0

ご返信が遅くなりました。私を助けてくれてありがとう。 あなたが言ったようにリンクでoAuthフローを開始する必要があるかどうかを理解しています。しかし、サービスAPI呼び出し(許可が必要)の前に、私は認証を呼び出す必要があります。そうでなければ、約束は401で解決します。 認証の結果は、ユーザーがoAuthプロバイダに対して認証されているかどうかを知る助けになります)、それに応じてログインボタンを表示します。 – nlko

関連する問題