Meteor 流星yammer认证

Meteor 流星yammer认证,meteor,Meteor,如何对yammer使用自定义yammer身份验证 流星似乎做基本的事情很好,但任何并发症和它死亡 到目前为止,我的代码如下。我不知道Meteor如何将当前用户id设置为REST调用返回的变量 客户: console.log "auth running" tokenMatch = window.location.hash.match(/access_token=([a-zA-Z0-9]+)/) if tokenMatch authToken = tokenMatch[1]; co

如何对yammer使用自定义yammer身份验证

流星似乎做基本的事情很好,但任何并发症和它死亡

到目前为止,我的代码如下。我不知道Meteor如何将当前用户id设置为REST调用返回的变量

客户:

console.log "auth running"

tokenMatch = window.location.hash.match(/access_token=([a-zA-Z0-9]+)/)
if tokenMatch
    authToken = tokenMatch[1];
    console.log "auth token", authToken

    Meteor.loginWithToken(authToken);

    Meteor.call 'yammerAuth', authToken, (err, result) ->
        console.log "data", result, err

    Meteor.call 'hello', (err,data) ->
        console.log data

console.log "client"
tokenMatch = window.location.hash.match(/access_token=([a-zA-Z0-9]+)/)
if tokenMatch
    authToken = tokenMatch[1];
    console.log "auth token", authToken

    Accounts.callLoginMethod
        methodArguments: [{authToken:authToken}]

    window.location.hash = "";
服务器:

Meteor.methods
    yammerAuth: (authToken) ->
        console.log "yammerAuth", authToken
        result = Meteor.http.call "GET", 'https://www.yammer.com/api/v1/users/current.json',
            headers:
                Authorization: 'Bearer ' + authToken

        data = result.data                  

        console.log "login", data

        Accounts.createUser
            username: data.id
            email: "blah"
            password: "blah"
            profile: data

        return result

    hello: -> 
        console.log "hello"
        "hello"
Accounts.registerLoginHandler (loginRequest) ->
    authToken = loginRequest.authToken

    return unless authToken

    result = Meteor.http.call "GET", 'https://www.yammer.com/api/v1/users/current.json',
        headers:
            Authorization: 'Bearer ' + authToken

    data = result.data
    # console.log "login", data

    serviceData = 
        id: data.id
        accessToken: authToken
        email: data.name + "@microsoft.com"

    options = 
        profile:
            name: data.full_name
            network: data.network_name
            pic: data.mugshot_url

    return if data.network_name != "Microsoft" # Only microsoft users allowed


    console.log serviceData, options

    user = Accounts.updateOrCreateUserFromExternalService('yammer', serviceData, options)
    # console.log "user", user
    return userId:user.userId   
服务器:

Meteor.methods
    yammerAuth: (authToken) ->
        console.log "yammerAuth", authToken
        result = Meteor.http.call "GET", 'https://www.yammer.com/api/v1/users/current.json',
            headers:
                Authorization: 'Bearer ' + authToken

        data = result.data                  

        console.log "login", data

        Accounts.createUser
            username: data.id
            email: "blah"
            password: "blah"
            profile: data

        return result

    hello: -> 
        console.log "hello"
        "hello"
Accounts.registerLoginHandler (loginRequest) ->
    authToken = loginRequest.authToken

    return unless authToken

    result = Meteor.http.call "GET", 'https://www.yammer.com/api/v1/users/current.json',
        headers:
            Authorization: 'Bearer ' + authToken

    data = result.data
    # console.log "login", data

    serviceData = 
        id: data.id
        accessToken: authToken
        email: data.name + "@microsoft.com"

    options = 
        profile:
            name: data.full_name
            network: data.network_name
            pic: data.mugshot_url

    return if data.network_name != "Microsoft" # Only microsoft users allowed


    console.log serviceData, options

    user = Accounts.updateOrCreateUserFromExternalService('yammer', serviceData, options)
    # console.log "user", user
    return userId:user.userId   
客户:

console.log "auth running"

tokenMatch = window.location.hash.match(/access_token=([a-zA-Z0-9]+)/)
if tokenMatch
    authToken = tokenMatch[1];
    console.log "auth token", authToken

    Meteor.loginWithToken(authToken);

    Meteor.call 'yammerAuth', authToken, (err, result) ->
        console.log "data", result, err

    Meteor.call 'hello', (err,data) ->
        console.log data

console.log "client"
tokenMatch = window.location.hash.match(/access_token=([a-zA-Z0-9]+)/)
if tokenMatch
    authToken = tokenMatch[1];
    console.log "auth token", authToken

    Accounts.callLoginMethod
        methodArguments: [{authToken:authToken}]

    window.location.hash = "";
登录按钮

a class="login-btn" href="https://www.yammer.com/dialog/oauth?client_id=[client_id]&redirect_uri=[uri]&response_type=token"></a

a class=“login btn”href=”https://www.yammer.com/dialog/oauth?client_id=[client\u id]&重定向\u uri=[uri]&响应\u type=token“>告诉我我会帮你做的。