torii 获取授权码而不是访问令牌

torii gets authorization code instead access token

我有一个与 github 连接的 ember 应用程序,但身份验证流程 returns 授权代码 ,而不是访问令牌,而且我真的不知道如何进行交换......好吧,至少我没有在互联网上找到任何例子。

我对 ember 有点陌生,这是我目前所了解的

authenticator/torii.js

import Ember from 'ember';
import ToriiAuthenticator from 'ember-simple-auth/authenticators/torii';

export default ToriiAuthenticator.extend({
  torii: Ember.inject.service()
});

torii-providers/github.js

import GithubOauth2Provider from 'torii/providers/github-oauth2';

export default GithubOauth2Provider.extend({
  fetch(data) {
    return data;
  }
});

我知道我可能需要更改提供程序中的某些内容,但我真的不知道从哪里开始

我自己用 Torii 进行了 GitHub 身份验证。这是我的建议:

  1. 去掉ember-simple-auth,直接使用Torii。具有讽刺意味的是,ember-simple-auth 的 Torii 包装器不是 "simple".
  2. 您应该阅读 Torii's docs 以熟悉该库。
  3. 在您的 config/environment.js 中,配置 Torii。示例:

    torii: {
      sessionServiceName: 'session',
      providers: {
        'github-oauth2': {
           // your api key goes here
           apiKey: '',
    
           // link to your app goes here
           // in development mode, it should be http://localhost:4200
           redirectUri: '',
    
           // specify OAuth scope here
           scope: ''
        }
      }
    }
    
  4. 创建一个名为 torii-adapters/application.js 的文件。这里需要实现.open().fetch().close()三个方法。请注意,您将收到 authorizationCode 作为 .open() 的参数,您应该(与您的身份验证后端)交换访问令牌。

  5. 哦,您需要一个 OAuth 后端来保护您的客户端机密。您将授权代码从您的 Ember 应用程序发送到您的 OAuth 后端,OAuth 后端使用访问令牌进行响应。

如果其中 none 对您有意义,请查看 this blog post,其中对 OAuth 进行了很好的总结。你应该了解大局,这样填写细节就容易了。 :)