0

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

我对 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;
  }
});

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

4

1 回答 1

3

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

  1. 删除 ember-simple-auth 并直接使用 Torii。具有讽刺意味的是,ember-simple-auth 的 Torii 包装器并不“简单”。
  2. 您应该阅读Torii 的文档以熟悉该库。
  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 后端会使用访问令牌进行响应。

如果这些对您没有任何意义,请查看这篇博文,其中对 OAuth 进行了很好的总结。您应该了解大局,以便轻松填写细节。:)

于 2016-08-04T13:47:20.223 回答