Help:OAuth

bengala

OAuth is a means of giving outside ("connected") applications the ability to perform edits and other actions on your behalf. Using this authentication protocol, you can authorize ("grant") a connected application the ability to act on your behalf without the need to divulge your password. The OAuth protocol is widely used by other websites, including major sites such as Google and Flickr.

Frequently asked questions
If your question is not answered here, feel free to ask on the talk page and someone will answer it for you.

Is OAuth secure?
Yes, the OAuth protocol is designed to be a secure method for third-party authorization.

Firstly, OAuth allows third-party websites to access your account without you having to give them your password. Applications are able to access your account if and only if you authorize them to do so, and if you revoke that right then application will immediately be unable to take actions on your behalf.

Secondly, each third-party website you authorize is only allowed to take the specific actions you authorized it to. This means that, for example, if you are an administrator and you authorize an application that asks only for "Basic rights", if the application tries to delete a page (which requires admin rights) then that wiki will reject the request. Previously, if an application had your password, you were relying on the assurances of the author of the application that it would not use your advanced rights.

How does this affect me right now?
Applications cannot take any actions on your behalf without authorization, so until you decide you want to use an application which uses OAuth, you're not affected at all.

How do I connect an application to my account?


If an application wishes to use OAuth to take actions on your behalf, you will have to authorize it to do so. Applications cannot take any actions on your behalf without authorization.

When an application asks you to authorize it, you will be presented with a dialog which tells you the what rights the application has asked for (see image on the right). If you click "Cancel", the authorization process is declined. If you click "Allow", the application will be authorized to take the actions listed in the dialog.

A list of currently approved applications is available at sp>Special:OAuthListConsumers|Special:OAuthListConsumers.

How can I see what applications are connected to my account?
The page oam>Special:OAuthManageMyGrants|Special:OAuthManageMyGrants (which is also accessible from the "User profile" tab in your preferences) lists all the applications you have authorized to access your account. From this page, you can also adjust and revoke grants.

How do I remove an application's ability to access my account?
Go to oamg>Special:OAuthManageMyGrants|Special:OAuthManageMyGrants, find the application you want to remove access for, and click "revoke access". Then, on the page that opens, click the "Deauthorize" button.

Once an application is deauthorized, it will no longer be able to access your account or take any actions on your behalf. You will have to go through that application's authorization process again in order for it to access your account.

How do I change what actions an application can take with my account?
Go to oam2>Special:OAuthManageMyGrants|Special:OAuthManageMyGrants, find the application you want to modify the permissions for, and click "manage access". From here you can revoke any individual permissions, excluding "Basic rights" which are the minimal rights required by all connected applications to function.

Please note that altering or removing permissions from an application's grant may cause the application to stop working properly for you.

Can I see an example of how OAuth works?
Brad Jorsch has put together an example of how OAuth works called "OAuth Hello World!". To try it, go to [https://tools.wmflabs.org/oauth-hello-world/ https://tools.wmflabs.org/oauth-hello-world/].

Where can I register my own application?
propose>Special:OAuthConsumerRegistration/propose|Here. (Make sure to use "http://" in the callback URL or the callback won't work!)